Exemple #1
0
        public async Task GetUpdates()
        {
            var client = await InitializeAndAuthenticateClient();

            var updatesStateRequest = new GetUpdatesStateRequest();
            await client.SendRpcRequest(updatesStateRequest);

            var initialState = (UpdatesStateConstructor)updatesStateRequest.updatesState;

            var request = new GetUpdatesDifferenceRequest(initialState.pts, initialState.date, initialState.qts);
            await client.SendRpcRequest(request);

            Assert.IsNotNull(request.updatesDifference);
            Assert.AreEqual(request.updatesDifference.constructor, Constructor.UpdatesDifferenceEmpty);

            var importedUser = await ImportAndGetUser(client, numberToSendMessage);

            await client.SendDirectMessage(importedUser.userId, "test");

            var differenceRequestAfterMessage = new GetUpdatesDifferenceRequest(initialState.pts, initialState.date, initialState.qts);
            await client.SendRpcRequest(differenceRequestAfterMessage);

            Assert.IsNotNull(differenceRequestAfterMessage.updatesDifference);
            Assert.AreEqual(differenceRequestAfterMessage.updatesDifference.constructor, Constructor.UpdatesDifference);

            var differenceUpdate = (UpdatesDifferenceConstructor)differenceRequestAfterMessage.updatesDifference;

            Assert.AreEqual(1, differenceUpdate.newMessages.Count);

            var messageUpdate = (MessageConstructor)differenceUpdate.newMessages[0];

            Assert.AreEqual("test", messageUpdate.message);
        }
Exemple #2
0
        // messages.forwardMessage#3f3f4f2 peer:InputPeer id:int random_id:long = messages.StatedMessage;
        // messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig;
        // messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat;
        // messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat;
        // messages.discardEncryption#edd923c5 chat_id:int = Bool;
        // messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool;
        // messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool;
        // messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
        // messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage;
        // messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
        // messages.receivedQueue#55a5bb66 max_qts:int = Vector<long>;
        // messages.readMessageContents#354b5bc2 id:Vector<int> = Vector<int>;
        // messages.getStickers#ae22e045 emoticon:string hash:string = messages.Stickers;
        // messages.getAllStickers#aa3bc868 hash:string = messages.AllStickers;

        #endregion

        #region Updates

        // updates.getState#edd4882a = updates.State;
        public async Task <UpdatesStateConstructor> GetUpdatesState()
        {
            var request = new GetUpdatesStateRequest();

            await SendRpcRequest(request);

            // only single implementation available
            return((UpdatesStateConstructor)request.updatesState);
        }
        private async void InitUpdateListener()
        {
            var updatesStateRequest = new GetUpdatesStateRequest();
            await Client.SendRpcRequest(updatesStateRequest);

            var initialState = (UpdatesStateConstructor)updatesStateRequest.updatesState;

            var request = new GetUpdatesDifferenceRequest(initialState.pts, initialState.date, initialState.qts);
            await Client.SendRpcRequest(request);
        }
Exemple #4
0
        public async Task <updates_State> GetUpdatesState()
        {
            var request = new GetUpdatesStateRequest();

            await _sender.Send(request);

            await _sender.Receive(request);

            return(request.updates);
        }