Пример #1
0
        public bool TryProcessResponseErrors(IGitHubResponse response,
                                             out GitHubException exception)
        {
            Requires.ArgumentNotNull(response, "response");

            if (response.StatusCode == HttpStatusCode.OK ||
                response.StatusCode == HttpStatusCode.Created ||
                response.StatusCode == HttpStatusCode.Accepted) {
                exception = null;
                return false;
            }

            var errorType = ErrorType.Unknown;
            if (response.ResponseStatus == ResponseStatus.Error) {
                errorType = ErrorType.NoNetwork;
            }
            else if (response.StatusCode == HttpStatusCode.BadGateway) {
                errorType = ErrorType.ServerError;
            }
            else if (response.StatusCode == HttpStatusCode.Forbidden) {
                errorType = ErrorType.ApiLimitExceeded;
            }
            else if (response.StatusCode == HttpStatusCode.NotFound) {
                errorType = ErrorType.ResourceNotFound;
            }
            else if (response.StatusCode == HttpStatusCode.Unauthorized) {
                errorType = ErrorType.Unauthorized;
            }
            // TODO: Other error types

            exception = new GitHubException(response, errorType);
            return true;
        }
Пример #2
0
        public GitHubException(IGitHubResponse response,
                               ErrorType errorType)
            : base(string.Empty, response.ErrorException)
        {
            Requires.ArgumentNotNull(response, "response");

            _response = response;
            _errorType = errorType;
        }
Пример #3
0
        public GitHubException(IGitHubResponse response,
                               ErrorType errorType)
            : base(string.Empty, response.ErrorException)
        {
            Requires.ArgumentNotNull(response, "response");

            _response  = response;
            _errorType = errorType;
        }
Пример #4
0
        public bool TryProcessResponseErrors(IGitHubResponse response,
                                             out GitHubException exception)
        {
            Requires.ArgumentNotNull(response, "response");

            if (response.StatusCode == HttpStatusCode.OK ||
                response.StatusCode == HttpStatusCode.Created ||
                response.StatusCode == HttpStatusCode.Accepted)
            {
                exception = null;
                return(false);
            }

            var errorType = ErrorType.Unknown;

            if (response.ResponseStatus == ResponseStatus.Error)
            {
                errorType = ErrorType.NoNetwork;
            }
            else if (response.StatusCode == HttpStatusCode.BadGateway)
            {
                errorType = ErrorType.ServerError;
            }
            else if (response.StatusCode == HttpStatusCode.Forbidden)
            {
                errorType = ErrorType.ApiLimitExceeded;
            }
            else if (response.StatusCode == HttpStatusCode.NotFound)
            {
                errorType = ErrorType.ResourceNotFound;
            }
            else if (response.StatusCode == HttpStatusCode.Unauthorized)
            {
                errorType = ErrorType.Unauthorized;
            }
            // TODO: Other error types

            exception = new GitHubException(response, errorType);
            return(true);
        }