public virtual async Task <ActionResult> Build() { // check if model was submitted in a good state if (!innerBuilder.ModelState.IsValid) { return(CommandBuilderHelpers.ReturnJsonModelState(innerBuilder.ModelState)); } try { var errors = await innerBuilder.Mediator.ProcessCommandAsync(innerBuilder.Command); if (!errors.IsSuccess()) { innerBuilder.ModelState.AddErrorMessages(errors); return(CommandBuilderHelpers.ReturnJsonModelState(innerBuilder.ModelState)); } } catch (Exception exception) { innerBuilder.HandleException(exception); } return(innerBuilder.Handle()); }
public ActionResult HandleException(Exception exception) { ExceptionHandler.Current.Invoke(exception); LoggingService.ErrorException("Failed to process command", exception); if (exception is DomainException) { ModelState.AddModelError("", exception.Message); } else { #if (DEBUG) ModelState.AddModelError("", "Unable to process command " + exception); #else ModelState.AddModelError("", "Unable to process command"); #endif } return(CommandBuilderHelpers.ReturnJsonModelState(ModelState)); }