Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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;
 }