private bool Process(messages_Messages loadedMessages) { switch (loadedMessages.Constructor) { case Constructor.messages_messages: return(Process((Messages_messagesConstructor)loadedMessages)); case Constructor.messages_messagesSlice: return(Process((Messages_messagesSliceConstructor)loadedMessages)); } return(false); }
public override async Task LoadMore() { logger.info("LOADING MOOOOOOOOOOOOOOOOAR!!!!"); try { if (messages.Count > 0 && messages[0] is MessageModelDelivered) { messages_Messages loadedMessages = await TelegramSession.Instance.Api.messages_getHistory(InputPeer, 0, messages[0].Id, 30); loadMorePossible = Process(loadedMessages); } } catch (Exception e) { logger.error("load more exception: {0}", e); } }
private async Task MessagesRequest() { messages_Messages loadedMessages = await session.Api.messages_getHistory(TLStuff.PeerToInputPeer(dialog.peer), 0, -1, 100); List <Message> messagesList; List <Chat> chatsList; List <User> usersList; switch (loadedMessages.Constructor) { case Constructor.messages_messages: chatsList = ((Messages_messagesConstructor)loadedMessages).chats; messagesList = ((Messages_messagesConstructor)loadedMessages).messages; usersList = ((Messages_messagesConstructor)loadedMessages).users; break; case Constructor.messages_messagesSlice: chatsList = ((Messages_messagesSliceConstructor)loadedMessages).chats; messagesList = ((Messages_messagesSliceConstructor)loadedMessages).messages; usersList = ((Messages_messagesSliceConstructor)loadedMessages).users; break; default: return; } foreach (var user in usersList) { session.SaveUser(user); } foreach (var chat in chatsList) { session.SaveChat(chat); } foreach (var message in messagesList) { messages.Add(new MessageModelDelivered(message)); } }
private bool Process(messages_Messages loadedMessages) { switch(loadedMessages.Constructor) { case Constructor.messages_messages: return Process((Messages_messagesConstructor)loadedMessages); case Constructor.messages_messagesSlice: return Process((Messages_messagesSliceConstructor)loadedMessages); } return false; }