예제 #1
0
        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);
        }
예제 #2
0
        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);
            }
        }
예제 #3
0
        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));
            }
        }
예제 #4
0
        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;
        }