Пример #1
0
        public async Task <MethodResult> DoLogin(ISettings settings)
        {
            SetSettings(settings);

            await Login.DoLogin();

            return(new MethodResult
            {
                Message = "Successfully logged into server.",
                Success = true
            });
        }
Пример #2
0
        public async Task <ResponseEnvelope> PostProto <TRequest>(string url, RequestEnvelope requestEnvelope)
            where TRequest : IMessage <TRequest>
        {
            // robertmclaws: Let's be pro-active about token failures, instead of reactive.
            if (AccessToken == null || AccessToken.IsExpired)
            {
                await Login.DoLogin();
            }

            //Encode payload and put in envelop, then send
            var data   = requestEnvelope.ToByteString();
            var result = await PostAsync(url, new ByteArrayContent(data.ToByteArray()));

            //Decode message
            var responseData = await result.Content.ReadAsByteArrayAsync();

            var codedStream     = new CodedInputStream(responseData);
            var decodedResponse = new ResponseEnvelope();

            decodedResponse.MergeFrom(codedStream);

            return(decodedResponse);
        }