示例#1
0
        public async Task <List <Message> > ReceiveMessages()
        {
            ReceiveMessagesRequest  request  = new ReceiveMessagesRequest(AuthToken);
            ReceiveMessagesResponse response = await communicationService.SendAsync(request) as ReceiveMessagesResponse;

            return(response.Messages);
        }
示例#2
0
        private static ResponseBase ReadResponse(BinaryReader reader)
        {
            int responseSize = reader.ReadInt32();

            byte[] bytes = reader.ReadBytes(responseSize);

            ResponseType responseType = (ResponseType)BitConverter.ToInt32(bytes, 0);

            switch (responseType)
            {
            case ResponseType.RegistrationResult:
                return(RegistrationResponse.Parse(bytes));

            case ResponseType.LoginResult:
                return(LoginResponse.Parse(bytes));

            case ResponseType.AddContact:
                return(AddContactResponse.Parse(bytes));

            case ResponseType.GetContacts:
                return(GetContactsResponse.Parse(bytes));

            case ResponseType.SendMessage:
                return(SendMessageResponse.Parse(bytes));

            case ResponseType.ReceiveMessages:
                return(ReceiveMessagesResponse.Parse(bytes));

            case ResponseType.Ok:
            case ResponseType.InvalidAuthToken:
                throw new NotImplementedException();

            case ResponseType.ServerError:
                throw new ServerErrorException(ServerErrorResponse.Parse(bytes).ErrorMessage);

            default:
                throw new InvalidOperationException("Invalid type of response");
            }
        }