public async Task <TResponse> PutAsync <TRequest, TResponse>(string requestUri, TRequest model, CancellationToken cancellationToken = default) { var httpMessage = await _httpClient.PutAsync(requestUri, JsonRequest.For(model), cancellationToken); var content = await httpMessage.Content.ReadAsStringAsync(); JsonResponse <TResponse> response; if (httpMessage.IsSuccessStatusCode) { response = new JsonResponse <TResponse>(content); } else { response = new JsonResponse <TResponse>(content, httpMessage.StatusCode, httpMessage.ReasonPhrase); httpMessage.HandleHttpError(response); } return(response.Data); }