public static VKAttachment Deserialize(object attachment)
        {
            var    data = (Dictionary <string, object>)attachment;
            var    _atachment = new VKAttachment();
            object type, audio, photo, poll, doc, link, wall, note, Page;

            if (data.TryGetValue("type", out type))
            {
                _atachment.type = (string)type;
            }
            if (data.TryGetValue("audio", out audio))
            {
                _atachment.audio = VKAudio.Deserialize(audio);
            }
            if (data.TryGetValue("photo", out photo))
            {
                _atachment.photo = VKPhoto.Deserialize(photo);
            }
            if (data.TryGetValue("poll", out poll))
            {
                _atachment.poll = VKPoll.Deserialize(poll);
            }
            if (data.TryGetValue("doc", out doc))
            {
                _atachment.doc = VKDocument.Deserialize(doc);
            }
            if (data.TryGetValue("link", out link))
            {
                _atachment.link = VKLink.Deserialize(link);
            }
            if (data.TryGetValue("wall", out wall))
            {
                _atachment.wall = VKWallPost.Deserialize(wall);
            }
            if (data.TryGetValue("note", out note))
            {
                _atachment.note = VKNote.Deserialize(note);
            }
            if (data.TryGetValue("Page", out Page))
            {
                _atachment.Page = VKPage.Deserialize(Page);
            }
            return(_atachment);
        }
Пример #2
0
        public static VKWallPost Deserialize(object WallPost)
        {
            var _post = new VKWallPost();
            var data  = (Dictionary <string, object>)WallPost;

            object id, owner_id, from_id, date, text, reply_owner_id, reply_post_id, friends_only;


            if (data.TryGetValue("id", out id))
            {
                _post.id = (long)id;
            }
            if (data.TryGetValue("owner_id", out owner_id))
            {
                _post.owner_id = (long)owner_id;
            }
            if (data.TryGetValue("from_id", out from_id))
            {
                _post.from_id = (long)from_id;
            }
            if (data.TryGetValue("date", out date))
            {
                _post.date = (long)date;
            }
            if (data.TryGetValue("text", out text))
            {
                _post.text = (string)text;
            }
            if (data.TryGetValue("reply_owner_id", out reply_owner_id))
            {
                _post.reply_owner_id = (long)reply_owner_id;
            }
            if (data.TryGetValue("reply_post_id", out reply_post_id))
            {
                _post.reply_post_id = (long)reply_post_id;
            }
            if (data.TryGetValue("friends_only", out friends_only))
            {
                _post.friends_only = (int)(long)friends_only;
            }

            object comments, likes, reposts, post_type, post_source, attachments, geo;

            if (data.TryGetValue("comments", out comments))
            {
                _post.comments = VKComments.Deserialize(comments);
            }
            if (data.TryGetValue("likes", out likes))
            {
                _post.likes = VKLikes.Deserialize(likes);
            }
            if (data.TryGetValue("reposts", out reposts))
            {
                _post.reposts = VKReposts.Deserialize(reposts);
            }
            if (data.TryGetValue("post_type", out post_type))
            {
                _post.post_type = (string)post_type;
            }
            if (data.TryGetValue("post_source", out post_source))
            {
                _post.post_source = VKPostSource.Deserialize(post_source);
            }
            if (data.TryGetValue("attachments", out attachments))
            {
                var _att = new List <VKAttachment>();
                foreach (var a in (List <object>)attachments)
                {
                    _att.Add(VKAttachment.Deserialize(a));
                }
                _post.attachments = _att;
            }
            if (data.TryGetValue("geo", out geo))
            {
                _post.geo = VKGeo.Deserialize(geo);
            }

            object signer_id, copy_history, can_pin, is_pinned;

            if (data.TryGetValue("signer_id", out signer_id))
            {
                _post.signer_id = (long)signer_id;
            }
            if (data.TryGetValue("copy_history", out copy_history))
            {
                var h = new List <VKWallPost>();
                foreach (var h1 in (List <object>)copy_history)
                {
                    h.Add(VKWallPost.Deserialize(h1));
                }
                _post.copy_history = h;
            }

            if (data.TryGetValue("can_pin", out can_pin))
            {
                _post.can_pin = (int)(long)can_pin;
            }
            if (data.TryGetValue("is_pinned", out is_pinned))
            {
                _post.is_pinned = (int)(long)is_pinned;
            }

            return(_post);
        }