コード例 #1
0
        private static async Task <RecurlyRequestResult> ParseResponseAsync(HttpResponseMessage response)
        {
            var statusCode             = response.StatusCode;
            RecurlyException exception = null;
            XmlReader        reader    = null;

            switch (statusCode)
            {
            case HttpStatusCode.OK:
                reader = await GetXmlReaderFromResponseAsync(response).ConfigureAwait(false);

                break;

            case ValidationException.HttpStatusCode:
            case HttpStatusCode.PreconditionFailed:
            {
                var errors = await ReadErrorsFromResponseAsync(response).ConfigureAwait(false);

                exception = new ValidationException(errors);
                break;
            }

            case HttpStatusCode.Unauthorized:
            case HttpStatusCode.Forbidden:
            {
                var errors = await ReadErrorsFromResponseAsync(response).ConfigureAwait(false);

                exception = new InvalidCredentialsException(errors);
                break;
            }

            case HttpStatusCode.ServiceUnavailable:
                exception = new TemporarilyUnavailableException();
                break;

            case HttpStatusCode.InternalServerError:
            {
                var errors = await ReadErrorsFromResponseAsync(response).ConfigureAwait(false);

                exception = new ServerException(errors);
                break;
            }

            default:
            {
                var errors = await ReadErrorsFromResponseAsync(response).ConfigureAwait(false);

                exception = new RecurlyException("Unhandled response status code", errors);
                break;
            }
            }

            return(new RecurlyRequestResult(statusCode, reader, exception));
        }
コード例 #2
0
 internal RecurlyException(string message, RecurlyException innerException)
     : base(message, innerException)
 { }
コード例 #3
0
 internal RecurlyException(string message, RecurlyException innerException)
     : base(message, innerException)
 {
 }
コード例 #4
0
 public RecurlyRequestResult(HttpStatusCode statusCode, XmlReader responseReader, RecurlyException exception)
 {
     StatusCode     = statusCode;
     ResponseReader = responseReader;
     Exception      = exception;
 }