Beispiel #1
0
        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());
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
        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));
        }