Esempio n. 1
0
 private IEnumerable <OutputMember> TryExecute(Func <IEnumerable <OutputMember> > operationBuilder)
 {
     try
     {
         return(operationBuilder());
     }
     catch (Exception ex)
     {
         var validationException = ex.GetBaseException() as ValidationException;
         if (validationException != null)
         {
             var responseBody = new ResponseForProcessingError(validationException);
             LogBadRequest(responseBody);
             return(new[]
             {
                 new OutputMember
                 {
                     Value =
                         new OperationResult.BadRequest
                     {
                         ResponseResource = responseBody
                     }
                 }
             });
         }
         throw;
     }
 }
        private void RespondWithBadRequest(HttpActionExecutedContext context)
        {
            var validationException = context.Exception as ValidationException;
            var response            = new ResponseForProcessingError(validationException);

            LogBadRequest("Request pre-condition(s) failed", context, response);
            // we intentionally don't use context.Request.CreateErrorResponse, so that we can customise the response body. Otherwise it's too limited.
            context.Response = context.Request.CreateResponse(HttpStatusCode.BadRequest, response);
        }