コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
 protected BaseResponse(int code, string message)
 {
     Status  = BaseResponseStatus.Create(code, message);
     Version = GetVersion();
 }
コード例 #4
0
 public WebApiException(BaseResponseStatus status) : base(status.Message)
 {
     Status = status;
 }