private async Task <ApiReply> HandleResponse(HttpResponseMessage response) { ApiReply reply = new ApiReply(); await HandleResponseCore(reply, response); return(reply); }
private async Task <ApiReply <TReturnValue> > HandleResponse <TReturnValue>(HttpResponseMessage response) { ApiReply <TReturnValue> reply = new ApiReply <TReturnValue>(); await HandleResponseCore(reply, response); if (reply.WasSuccessful) { string content = await response.Content.ReadAsStringAsync(); reply.Result = JsonConvert.DeserializeObject <TReturnValue>(content); } return(reply); }
private async Task TryRefreshAccessToken() { if (CurrentUser != null && !TestAccessTokenValid()) { RefreshRequest request = new RefreshRequest() { AccessToken = CurrentUser.AccessToken, RefreshToken = CurrentUser.RefreshToken }; ApiReply <User> reply = await CallApiCore <User>(HttpMethod.Post, "Users/RefreshToken", request); if (reply.WasSuccessful) { CurrentUser = reply.Result; } } }
private async Task HandleResponseCore(ApiReply reply, HttpResponseMessage response) { switch (response.StatusCode) { case HttpStatusCode.OK: case HttpStatusCode.Created: case HttpStatusCode.Accepted: reply.WasSuccessful = true; break; case HttpStatusCode.NotFound: reply.WasSuccessful = false; break; default: reply.WasSuccessful = false; await TryHandleErrorResponse(reply, response); break; } reply.StatusCode = response.StatusCode; }
private async Task TryHandleErrorResponse(ApiReply reply, HttpResponseMessage response) { string content = await response.Content.ReadAsStringAsync(); object result = JsonConvert.DeserializeObject(content, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All }); if (result is NotifyException notifyException) { reply.ResultMessage = notifyException.Message; } else if (result is Exception exception) { if (exception.InnerException is NotifyException notifyException1) { reply.ResultMessage = notifyException1.Message; } else { throw exception; } } }