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)); }
internal RecurlyException(string message, RecurlyException innerException) : base(message, innerException) { }
public RecurlyRequestResult(HttpStatusCode statusCode, XmlReader responseReader, RecurlyException exception) { StatusCode = statusCode; ResponseReader = responseReader; Exception = exception; }