public static T DeSerializeNull <T>(SdkResponse sdkResponse) where T : SdkResponse
        {
            var t = Activator.CreateInstance <T>();

            t.HttpHeaders    = sdkResponse.HttpHeaders;
            t.HttpBody       = sdkResponse.HttpBody;
            t.HttpStatusCode = sdkResponse.HttpStatusCode;
            return(t);
        }
Esempio n. 2
0
        public static T DeSerialize <T>(SdkResponse response) where T : SdkResponse
        {
            var jsonObject = JsonConvert.DeserializeObject <T>(response.HttpBody, GetJsonSettings()) ??
                             Activator.CreateInstance <T>();

            jsonObject.HttpStatusCode = response.HttpStatusCode;
            jsonObject.HttpHeaders    = response.HttpHeaders;
            jsonObject.HttpBody       = response.HttpBody;
            return(jsonObject);
        }
        public static T DeSerialize <T>(SdkResponse sdkResponse) where T : SdkResponse
        {
            var jsonObject = JsonConvert.DeserializeObject <T>(sdkResponse.GetHttpBody());

            if (jsonObject == null)
            {
                return(DeSerializeNull <T>(sdkResponse));
            }

            jsonObject.HttpStatusCode = sdkResponse.HttpStatusCode;
            jsonObject.HttpHeaders    = sdkResponse.HttpHeaders;
            jsonObject.HttpBody       = sdkResponse.HttpBody;
            return(jsonObject);
        }
        private SdkResponse _http(string url, string method, string contentType, Dictionary <string, string> headers,
                                  string content)
        {
            var request = GetHttpRequest(url, method, contentType, headers, content);

            _credential.SignAuthRequest(request);
            var client  = new SdkHttpClient(_httpConfig);
            var message = client.InitHttpRequest(request);
            var result  = new SdkResponse();

            try
            {
                var task      = client.DoHttpRequest(message);
                var requestId = task.Result.Headers.GetValues(XRequestId).FirstOrDefault();
                result.HttpStatusCode = (int)task.Result.StatusCode;
                result.HttpHeaders    = task.Result.Headers.ToString();
                result.HttpBody       = task.Result.Content.ReadAsStringAsync().Result;
                if (result.HttpStatusCode < 400)
                {
                    return(result);
                }

                SdkError sdkError;
                try
                {
                    sdkError = GetSdkErrorFromResponse(requestId, result);
                }
                catch (Exception exception)
                {
                    throw new ServerResponseException(result.HttpStatusCode,
                                                      new SdkError {
                        ErrorMsg = exception.Message
                    });
                }

                if (result.HttpStatusCode >= 400 && result.HttpStatusCode < 500)
                {
                    throw new ClientRequestException(result.HttpStatusCode, sdkError);
                }

                throw new ServerResponseException(result.HttpStatusCode, sdkError);
            }
            catch (AggregateException aggregateException)
            {
                throw new ConnectionException(aggregateException.Message);
            }
        }
Esempio n. 5
0
        private SdkError HandleServiceCommonException(SdkResponse response)
        {
            var exception = JsonConvert.DeserializeObject <Dictionary <string, object> >(response.HttpBody);

            if (exception.ContainsKey("code") && exception.ContainsKey("message"))
            {
                return(new SdkError(exception["code"].ToString(), exception["message"].ToString()));
            }

            foreach (var item in exception)
            {
                var jValue  = JObject.Parse(item.Value.ToString());
                var message = jValue["message"];
                var code    = jValue["code"];
                if (message != null && code != null)
                {
                    return(new SdkError(code.ToString(), message.ToString()));
                }
            }

            return(new SdkError(response.HttpBody));
        }
Esempio n. 6
0
        private HttpResponseMessage GetResult(HttpResponseMessage responseMessage)
        {
            if ((int)responseMessage.StatusCode < 400)
            {
                return(responseMessage);
            }

            var result = new SdkResponse
            {
                HttpStatusCode = (int)responseMessage.StatusCode,
                HttpHeaders    = responseMessage.Headers.ToString(),
                HttpBody       = responseMessage.Content.ReadAsStringAsync().Result
            };
            var requestId = responseMessage.Headers.GetValues(XRequestId).FirstOrDefault();

            SdkError sdkError;

            try
            {
                sdkError = GetSdkErrorFromResponse(requestId, result);
            }
            catch (Exception exception)
            {
                throw new ServerResponseException(result.HttpStatusCode,
                                                  new SdkError {
                    ErrorMsg = exception.Message
                });
            }

            if (result.HttpStatusCode >= 400 && result.HttpStatusCode < 500)
            {
                throw new ClientRequestException(result.HttpStatusCode, sdkError);
            }

            throw new ServerResponseException(result.HttpStatusCode, sdkError);
        }
Esempio n. 7
0
 protected virtual SdkError HandleServiceSpecException(SdkResponse response)
 {
     return(new SdkError());
 }
Esempio n. 8
0
 private static SdkError HandleServiceSpecException(SdkResponse response)
 {
     return(new SdkError());
 }
        public static List <T> DeSerializeList <T>(SdkResponse sdkResponse)
        {
            var data = JArray.Parse(sdkResponse.GetHttpBody()).ToObject <List <T> >();

            return(data);
        }