public ActionResult Invoke(TActionMethodResult actionMethodResult, ControllerContext context) { var modelState = context.Controller.ViewData.ModelState; Func <IGenericMapper, ErrorContext, ActionResult> actionResult = actionMethodResult.Failure; ErrorContext errorContext = null; if (modelState.IsValid) { TExecutedCommandResult executedCommandResult = _resultProcessor.ProcessCommand(actionMethodResult, _mapper); if (executedCommandResult.Successful) { actionResult = _resultProcessor.HandleSuccess(executedCommandResult, actionMethodResult); } else { errorContext = SetError(context, isAjaxRequest => actionMethodResult.NoErrorState || isAjaxRequest ? _errorAspect.BuildErrorContext(context, executedCommandResult.Error) : _errorAspect.SetErrorContext(context, executedCommandResult.Error)); } } else { errorContext = SetError(context, isAjaxRequest => actionMethodResult.NoErrorState || isAjaxRequest ? _errorAspect.BuildErrorContext(context, modelState) : _errorAspect.SetErrorContext(context, modelState)); } return(actionResult(_mapper, errorContext)); }