/// <summary> /// Generic method used to send a request to the Api /// </summary> /// <param name="requestUri">Request Uri</param> /// <param name="requestMessage">Request Message</param> /// <returns>Request response message</returns> private static T Post <T>(string requestUri, object requestMessage) where T : BaseResponseMessage { T result; var jsonObject = JsonConvert.SerializeObject(requestMessage); using (var httpClient = new BaseHttpClient()) using (var content = new BaseHttpContent(jsonObject)) using (HttpResponseMessage response = httpClient.PostAsync(requestUri, content).Result) { response.EnsureSuccessStatusCode(); Task <string> responseBody = response.Content.ReadAsStringAsync(); result = JsonConvert.DeserializeObject <T>(responseBody.Result); result.OperationSuccess = true; } return(result); }
/// <summary> /// Generic method used to send a request to the Api /// </summary> /// <param name="requestUri">Request Uri</param> /// <param name="requestMessage">Request Message</param> /// <returns>Request response message</returns> private async Task <T> Post <T>(string requestUri, object requestMessage) where T : BaseResponseMessage, new() { T result; try { var jsonObject = JsonConvert.SerializeObject(requestMessage); using (var httpClient = new BaseHttpClient() { Timeout = _configuration.Timeout }) using (var content = new BaseHttpContent(jsonObject)) { HttpResponseMessage response = await httpClient.PostAsync(requestUri, content); if (response.IsSuccessStatusCode) { string responseBody = await response.Content.ReadAsStringAsync(); result = JsonConvert.DeserializeObject <T>(responseBody); result.OperationSuccess = true; } else { result = new T(); result.ErrorMessage = string.Format("StatusCode: {0}, ReasonPhrase: '{1}'", (int)response.StatusCode, response.ReasonPhrase); } } } catch (Exception ex) { result = new T(); result.ErrorMessage = ex.Message; } return(result); }