public async Task <ApiResponse <TResponse> > PostWithResponseCode <TResponse>(IPostApiRequest request) { var stringContent = request.Data != null ? new StringContent(JsonConvert.SerializeObject(request.Data), Encoding.UTF8, "application/json") : null; var requestMessage = new HttpRequestMessage(HttpMethod.Post, request.PostUrl); requestMessage.AddVersion(request.Version); requestMessage.Content = stringContent; await AddAuthenticationHeader(requestMessage); var response = await HttpClient.SendAsync(requestMessage).ConfigureAwait(false); var json = await response.Content.ReadAsStringAsync().ConfigureAwait(false); var errorContent = ""; var responseBody = (TResponse) default; if (IsNot200RangeResponseCode(response.StatusCode)) { errorContent = json; HandleException(response, json); } else { responseBody = JsonConvert.DeserializeObject <TResponse>(json); } var postWithResponseCode = new ApiResponse <TResponse>(responseBody, response.StatusCode, errorContent); return(postWithResponseCode); }
public async Task Delete(IDeleteApiRequest request) { var requestMessage = new HttpRequestMessage(HttpMethod.Delete, request.DeleteUrl); requestMessage.AddVersion(request.Version); await AddAuthenticationHeader(requestMessage); var response = await HttpClient.SendAsync(requestMessage).ConfigureAwait(false); await response.EnsureSuccessStatusCodeIncludeContentInException(); }
public async Task <HttpStatusCode> GetResponseCode(IGetApiRequest request) { var requestMessage = new HttpRequestMessage(HttpMethod.Get, request.GetUrl); requestMessage.AddVersion(request.Version); await AddAuthenticationHeader(requestMessage); var response = await HttpClient.SendAsync(requestMessage).ConfigureAwait(false); return(response.StatusCode); }
public async Task Put <TData>(IPutApiRequest <TData> request) { var stringContent = request.Data != null ? new StringContent(JsonConvert.SerializeObject(request.Data), Encoding.UTF8, "application/json") : null; var requestMessage = new HttpRequestMessage(HttpMethod.Put, request.PutUrl); requestMessage.AddVersion(request.Version); requestMessage.Content = stringContent; await AddAuthenticationHeader(requestMessage); var response = await HttpClient.SendAsync(requestMessage).ConfigureAwait(false); await response.EnsureSuccessStatusCodeIncludeContentInException(); }
public async Task <ApiResponse <string> > PatchWithResponseCode <TData>(IPatchApiRequest <TData> request) { var stringContent = request.Data != null ? new StringContent(JsonConvert.SerializeObject(request.Data), Encoding.UTF8, "application/json") : null; var requestMessage = new HttpRequestMessage(HttpMethod.Patch, request.PatchUrl); requestMessage.AddVersion(request.Version); requestMessage.Content = stringContent; await AddAuthenticationHeader(requestMessage); var response = await HttpClient.SendAsync(requestMessage).ConfigureAwait(false); var responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(false); return(new ApiResponse <string>(responseContent, response.StatusCode, "")); //TODO - Error content should be correctly set }
public async Task <PagedResponse <TResponse> > GetPaged <TResponse>(IGetPagedApiRequest request) { var requestMessage = new HttpRequestMessage(HttpMethod.Get, request.GetPagedUrl); requestMessage.AddVersion(request.Version); await AddAuthenticationHeader(requestMessage); var response = await HttpClient.SendAsync(requestMessage).ConfigureAwait(false); if (!response.IsSuccessStatusCode) { return(new PagedResponse <TResponse>()); } var json = await response.Content.ReadAsStringAsync().ConfigureAwait(false); return(JsonConvert.DeserializeObject <PagedResponse <TResponse> >(json)); }