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 Handle() { if (JsonPayloadResult != null) { return(JsonPayloadResult); } if (ReloadPage) { AddSuccessMessage(SuccessMessage); var reloadResult = new CustomJsonResult { Data = new { IsPageReload = true, } }; return(reloadResult); } var generatedRedirectUrl = CommandBuilderHelpers.GetRedirectUrl(RedirectUrl, RedirectTo, HtmlHelper); if (generatedRedirectUrl != null) { AddSuccessMessage(SuccessMessage); var redirectResult = new CustomJsonResult { Data = new { RedirectUrl = generatedRedirectUrl, IsRedirect = true } }; return(redirectResult); } if (!String.IsNullOrEmpty(SuccessMessage)) { var jsonResult = new CustomJsonResult { Data = new { SuccessMessage = SuccessMessage, Success = true } }; return(jsonResult); } return(new HttpStatusCodeResult(201)); }
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)); }