public TResponse ExecuteRequest <TRequest, TResponse>(TRequest request) where TRequest : BaseRequest where TResponse : BaseResponse { var nameAction = GetNameAction(); HttpResponseMessage response = null; var content = string.Empty; try { using (response = Client.PostAsJsonAsync(UriActions[nameAction], request).Result) { content = response.Content.ReadAsStringAsync().Result; response.EnsureSuccessStatusCode(); } } catch (HttpRequestException e) { throw new WebApiException(BaseResponseStatus.Create(Convert.ToInt32(response.StatusCode), content)); } catch (Exception e) { throw new WebApiException(BaseResponseStatus.Create(500, e.Message)); } var message = JsonConvert.DeserializeObject <BaseResponse>(content); if (message.Status.Code != 200) { throw new WebApiException(message.Status); } return(JsonConvert.DeserializeObject <TResponse>(content)); }
public async Task <TResponse> ExecuteRequestAsync <TRequest, TResponse>(TRequest request, string nameAction) where TRequest : BaseRequest where TResponse : BaseResponse { HttpResponseMessage response = null; var content = string.Empty; try { response = await Client.PostAsJsonAsync(UriActions[nameAction.ToLowerInvariant()], request); response.EnsureSuccessStatusCode(); content = await response.Content.ReadAsStringAsync(); } catch (HttpRequestException) { throw new WebApiException(BaseResponseStatus.Create(Convert.ToInt32(response.StatusCode), content)); } catch (Exception exception) { throw new WebApiException(BaseResponseStatus.Create(500, exception.Message)); } var message = JsonConvert.DeserializeObject <BaseResponse>(content); if (message.Status.Code != 200) { throw new WebApiException(message.Status); } return(JsonConvert.DeserializeObject <TResponse>(content)); }
protected BaseResponse(int code, string message) { Status = BaseResponseStatus.Create(code, message); Version = GetVersion(); }