using System; using System.Collections.Generic; using System.IO; using TLSharp.Core.MTProto; namespace TLSharp.Core.Requests { public class GetDialogsRequest : MTProtoRequest { int _offset; int _max_id; int _limit; public List dialogs; public List messages; public List chats; public List users; public GetDialogsRequest(int offset, int max_id, int limit) { _offset = offset; _max_id = max_id; _limit = limit; } public override void OnSend(BinaryWriter writer) { writer.Write(0xeccf1df6); writer.Write(_offset); writer.Write(_max_id); writer.Write(_limit); } public override void OnResponse(BinaryReader reader) { bool dialogsSlice = reader.ReadUInt32() == 0x71e094f3; // else dialogs#15ba6c40 if (dialogsSlice) reader.ReadInt32(); // count // dialogs var result = reader.ReadUInt32(); // vector#1cb5c415 int dialogs_len = reader.ReadInt32(); dialogs = new List(dialogs_len); for (int dialogs_index = 0; dialogs_index < dialogs_len; dialogs_index++) { Dialog dialog_element; dialog_element = TL.Parse(reader); dialogs.Add(dialog_element); } // messages var count = reader.ReadInt32(); int messages_len = reader.ReadInt32(); messages = new List(messages_len); for (int message_index = 0; message_index < messages_len; message_index++) { Message messages_element; messages_element = TL.Parse(reader); messages.Add(messages_element); } // chats count = reader.ReadInt32(); int chats_len = reader.ReadInt32(); chats = new List(chats_len); for (int chat_index = 0; chat_index < chats_len; chat_index++) { Chat chats_element; chats_element = TL.Parse(reader); chats.Add(chats_element); } // users count = reader.ReadInt32(); int users_len = reader.ReadInt32(); users = new List(users_len); for (int users_index = 0; users_index < users_len; users_index++) { User users_element; users_element = TL.Parse(reader); users.Add(users_element); } } public override void OnException(Exception exception) { throw new NotImplementedException(); } public override bool Confirmed => true; public override bool Responded { get; } } }