public async Task <MethodResult> DoLogin(ISettings settings) { SetSettings(settings); await Login.DoLogin(); return(new MethodResult { Message = "Successfully logged into server.", Success = true }); }
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); }