internal static MessageResponse Parse(dynamic data) { if (data == null || data.message_id == null || data.from == null || data.date == null || data.chat == null) { return null; } var messageResponse = new MessageResponse { MessageId = data.message_id, From = UserResponse.Parse(data.from), Date = ((int?) data.date).ToDateTime(), UserChat = UserResponse.Parse(data.chat), GroupChat = GroupChatResponse.Parse(data.chat), ForwardFrom = UserResponse.Parse(data.forward_from), ForwardDate = ((int?) data.forward_date).ToDateTime(), ReplyToMessage = MessageResponse.Parse(data.reply_to_message), Text = data.text, Audio = AudioResponse.Parse(data.audio), Document = DocumentResponse.Parse(data.document), Sticker = StickerResponse.Parse(data.sticker), Video = VideoResponse.Parse(data.video), Contact = ContactResponse.Parse(data.contact), Location = LocationResponse.Parse(data.location), NewChatParticipant = UserResponse.Parse(data.new_chat_participant), LeftChatParticipant = UserResponse.Parse(data.left_chat_participant), NewChatTitle = data.new_chat_title, DeleteChatPhoto = data.delete_chat_photo, GroupChatCreated = data.group_chat_created }; if (data.photo != null) { foreach (var photo in data.photo) { messageResponse.Photo.Add(PhotoSizeResponse.Parse(photo)); } } if (data.new_chat_photo != null) { foreach (var photo in data.new_chat_photo) { messageResponse.NewChatPhoto.Add(PhotoSizeResponse.Parse(photo)); } } return messageResponse; }
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"), UserChat = UserResponse.Parse(data.GetJson("chat")), GroupChat = GroupChatResponse.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") }; 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; }