/// <summary> /// Validates a REST response with a specified HTTP status code. /// </summary> /// <param name="client">The REST client.</param> /// <param name="request">The REST request.</param> /// <param name="response">The REST response.</param> /// <param name="statusCode">The expected HTTP status code.</param> /// <returns>An exception instance or null value if the response is correct.</returns> private static Exception ValidateRestResponse(IRestClient client, IRestRequest request, IRestResponse response, params HttpStatusCode[] statusCode) { Exception result; if (response == null) { result = new InvalidOperationException(string.Format(LocalStrings.ResponseNullReferenceErrorMessage1, client.BuildUri(request))); } else if (response.ErrorException != null) { result = response.ErrorException; } else if (!statusCode.Any(x => x == response.StatusCode)) { result = new InteractionException(MessageDefs.ClientName, CommonMessageDefs.UnexpectedHttpStatusCode, response.StatusCode, response.StatusDescription, string.Format(LocalStrings.ResponseStatusCodeUnexpectedErrorMessage2, response.StatusCode, response.StatusDescription)); } else { result = null; } return(result); }
/// <summary> /// Raises handlers of RequestError event. /// </summary> /// <param name="error">The error.</param> /// <param name="defAction">The default next action.</param> private RequestErrorAction RaiseRequestError(InteractionException error, RequestErrorAction defAction) { RequestErrorAction result; var handler = RequestError; if (handler != null) { var args = new RequestErrorEventArgs(error, defAction); handler(this, args); result = args.Action; } else { result = defAction; } return(result); }
/// <summary> /// Constructs an instance with arguments of a request error event. /// </summary> /// <param name="error">The error.</param> /// <param name="action">The next action.</param> public RequestErrorEventArgs(InteractionException error, RequestErrorAction action) { Error = error; Action = action; }