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 SdkError HandleServiceCommonException(SdkResponse response)
        {
            var exception = JsonConvert.DeserializeObject <Dictionary <string, object> >(response.GetHttpBody());

            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.GetHttpBody()));
        }
        public static List <T> DeSerializeList <T>(SdkResponse sdkResponse)
        {
            var data = JArray.Parse(sdkResponse.GetHttpBody()).ToObject <List <T> >();

            return(data);
        }