SmartApp.Sample3.Contracts.Post.TryGetFromBinary C# (CSharp) Method

TryGetFromBinary() public static method

public static TryGetFromBinary ( byte data ) : Post
data byte
return Post
        public static Post TryGetFromBinary(byte[] data)
        {
            using (var mem = new MemoryStream(data))
            using (var bin = new BinaryReader(mem))
            {
                if (bin.ReadInt32() != Signature)
                    return null;

                var post = new Post
                {
                    Id = bin.ReadInt64(),
                    PostTypeId = bin.ReadInt64(),
                    CreationDate = DateTime.FromBinary(bin.ReadInt64()),
                    ViewCount = bin.ReadInt64(),
                    Body = bin.ReadString(),
                    OwnerUserId = bin.ReadInt64(),
                    LastEditDate = DateTime.FromBinary(bin.ReadInt64()),
                    Title = bin.ReadString(),
                    AnswerCount = bin.ReadInt64(),
                    CommentCount = bin.ReadInt64(),
                    FavoriteCount = bin.ReadInt64()
                };

                var tags = new List<string>();
                var tagCount = bin.ReadInt32();
                for (var i = 0; i < tagCount; i++)
                {
                    tags.Add(bin.ReadString());
                }

                post.Tags = tags.ToArray();

                return post;
            }
        }