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);
 }