Ejemplo n.º 1
0
        internal static MessageResponse Parse(JsonData data)
        {
            if (data == null || !data.Has("message_id") || !data.Has("from") || !data.Has("date") || !data.Has("chat"))
            {
                return(null);
            }

            var messageResponse = new MessageResponse
            {
                MessageId             = data.Get <int>("message_id"),
                From                  = UserResponse.Parse(data.GetJson("from")),
                Date                  = data.GetDateTime("date"),
                Chat                  = ChatResponse.Parse(data.GetJson("chat")),
                ForwardFrom           = UserResponse.Parse(data.GetJson("forward_from")),
                ForwardDate           = data.GetDateTime("forward_date"),
                ReplyToMessage        = Parse(data.GetJson("reply_to_message")),
                Text                  = data.Get <string>("text"),
                Audio                 = AudioResponse.Parse(data.GetJson("audio")),
                Document              = DocumentResponse.Parse(data.GetJson("document")),
                Sticker               = StickerResponse.Parse(data.GetJson("sticker")),
                Video                 = VideoResponse.Parse(data.GetJson("video")),
                Voice                 = VoiceResponse.Parse(data.GetJson("voice")),
                Caption               = data.Get <string>("caption"),
                Contact               = ContactResponse.Parse(data.GetJson("contact")),
                Location              = LocationResponse.Parse(data.GetJson("location")),
                NewChatParticipant    = UserResponse.Parse(data.GetJson("new_chat_participant")),
                LeftChatParticipant   = UserResponse.Parse(data.GetJson("left_chat_participant")),
                NewChatTitle          = data.Get <string>("new_chat_title"),
                DeleteChatPhoto       = data.Get <bool?>("delete_chat_photo"),
                GroupChatCreated      = data.Get <bool?>("group_chat_created"),
                SupergroupChatCreated = data.Get <bool?>("supergroup_chat_created"),
                ChannelChatCreated    = data.Get <bool?>("channel_chat_created"),
                MigrateToChatId       = data.Get <int?>("migrate_to_chat_id"),
                MigrateFromChatId     = data.Get <int?>("migrate_from_chat_id")
            };

            if (data.Has("photo"))
            {
                foreach (var photo in data.GetJsonList("photo"))
                {
                    messageResponse.Photo.Add(PhotoSizeResponse.Parse(photo));
                }
            }
            if (data.Has("new_chat_photo"))
            {
                foreach (var photo in data.GetJsonList("new_chat_photo"))
                {
                    messageResponse.NewChatPhoto.Add(PhotoSizeResponse.Parse(photo));
                }
            }

            return(messageResponse);
        }
Ejemplo n.º 2
0
        internal static ChatResponse Parse(JsonData data)
        {
            if (data == null || !data.Has("id") || !data.Has("type"))
            {
                return null;
            }

            var chatResponse = new ChatResponse
            {
                Id = data.Get<int>("id"),
                Title = data.Get<string>("title"),
                UserName = data.Get<string>("username"),
                FirstName = data.Get<string>("first_name"),
                LastName = data.Get<string>("last_name")
            };

            switch (data.Get<string>("type"))
            {
                case "private":
                    chatResponse.Type = ChatType.Private;
                    break;

                case "group":
                    chatResponse.Type = ChatType.Group;
                    break;

                case "channel":
                    chatResponse.Type = ChatType.Channel;
                    break;

                case "supergroup":
                    chatResponse.Type = ChatType.Supergroup;
                    break;
            }

            return chatResponse;
        }
Ejemplo n.º 3
0
        internal static ChatResponse Parse(JsonData data)
        {
            if (data == null || !data.Has("id") || !data.Has("type"))
            {
                return(null);
            }

            var chatResponse = new ChatResponse
            {
                Id        = data.Get <int>("id"),
                Title     = data.Get <string>("title"),
                UserName  = data.Get <string>("username"),
                FirstName = data.Get <string>("first_name"),
                LastName  = data.Get <string>("last_name")
            };

            switch (data.Get <string>("type"))
            {
            case "private":
                chatResponse.Type = ChatType.Private;
                break;

            case "group":
                chatResponse.Type = ChatType.Group;
                break;

            case "channel":
                chatResponse.Type = ChatType.Channel;
                break;

            case "supergroup":
                chatResponse.Type = ChatType.Supergroup;
                break;
            }

            return(chatResponse);
        }