Beispiel #1
0
        public ApiResponse(IResponse response, T bodyAsObject)
        {
            response.ArgumentNotNull(nameof(response));

            HttpResponse = response;
            Body         = bodyAsObject;
        }
Beispiel #2
0
        public IApiResponse <T> DeserializeResponse <T>(IResponse response)
            where T : class
        {
            response.ArgumentNotNull(nameof(response));

            if (response.ContentType != null && response.ContentType.Equals("application/json", StringComparison.Ordinal))
            {
                var body = response.Body as string;

                if (!string.IsNullOrEmpty(body) && body != "{}")
                {
                    #if NET40 || NET45 || NET46
                    var typeIsDictionary = typeof(IDictionary).IsAssignableFrom(typeof(T));
                    var typeIsEnumerable = typeof(IEnumerable).IsAssignableFrom(typeof(T));
                    #else
                    var typeIsDictionary = typeof(IDictionary).GetTypeInfo().IsAssignableFrom(typeof(T).GetTypeInfo());
                    var typeIsEnumerable = typeof(IEnumerable).GetTypeInfo().IsAssignableFrom(typeof(T).GetTypeInfo());
                    #endif
                    var responseIsObject = body != null && body.StartsWith("{", StringComparison.Ordinal);

                    if (!typeIsDictionary && typeIsEnumerable && responseIsObject)
                    {
                        body = "[" + body + "]";
                    }

                    var json = serializer.Deserialize <T>(body);

                    return(new ApiResponse <T>(response, json));
                }
            }

            return(new ApiResponse <T>(response));
        }
Beispiel #3
0
        public RateLimitExceededException(IResponse response, Exception innerException)
            : base(response, innerException)
        {
            response.ArgumentNotNull(nameof(response));

            rateLimit = response.ApiInfo.RateLimit;
        }
Beispiel #4
0
        public ApiException(IResponse response, Exception innerException)
            : base(null, innerException)
        {
            response.ArgumentNotNull(nameof(response));

            StatusCode   = response.StatusCode;
            ApiError     = GetApiErrorFromExceptionMessage(response);
            HttpResponse = response;
        }