Exemple #1
0
        public static ViewResult ErrorViewWithGoBackToIndexDestination(this Controller controller, string viewName, HttpStatusCode responseStatusCode, string instanceName, string message = DefaultText, string actionLinkText = DefaultText)
        {
            string controllerName = controller.GetCallingControllerName();
            string actionName     = controller.GetCallingActionName();
            string areaName       = controller.GetCallingAreaName();

            string linkText = actionLinkText;

            if (string.IsNullOrEmpty(linkText))
            {
                linkText = Regex.Replace(actionName, @"(?<!\A)(?=[A-Z0-9]+)", " ");
            }

            var linkViewModel = new ActionMetaViewModel
            {
                ActionLinkText = linkText,
                Message        = message,
                AreaName       = areaName,
                ControllerName = controllerName,
                ActionName     = actionName
            };

            var backViewModel = new ActionMetaViewModel
            {
                ActionLinkText = Strings.DefaultBackToListActionLinkTitle,
                ActionName     = ActionNames.DeafultIndexActionName,
                ControllerName = controllerName,
                AreaName       = areaName
            };

            return(controller.ErrorView(viewName, responseStatusCode, instanceName, linkViewModel, backViewModel));
        }
Exemple #2
0
        public static ViewResult ErrorViewWithGoBackToIndexDestination(
            this Controller controller,
            string viewName,
            HttpStatusCode responseStatusCode,
            string instanceName,
            ActionMetaViewModel sourceAction)
        {
            var viewModel = new ActionMetaViewModel
            {
                ActionLinkText = Strings.DefaultBackToListActionLinkTitle,
                ActionName     = ActionNames.DeafultIndexActionName,
                ControllerName = sourceAction.ControllerName,
                AreaName       = sourceAction.AreaName
            };

            return(controller.ErrorView(viewName, responseStatusCode, instanceName, sourceAction, viewModel));
        }
Exemple #3
0
        public static ViewResult ErrorView(
            this Controller controller,
            string viewName,
            HttpStatusCode responseStatusCode,
            string instanceName,
            ActionMetaViewModel sourceAction,
            params ActionMetaViewModel[] destinationActions)
        {
            if (controller == null)
            {
                throw new ArgumentNullException(nameof(controller));
            }

            if (string.IsNullOrWhiteSpace(viewName))
            {
                throw new ArgumentNullException(nameof(viewName));
            }

            if (sourceAction == null)
            {
                throw new ArgumentNullException(nameof(sourceAction));
            }

            controller.Response.StatusCode = (int)responseStatusCode;

            var view = new ViewResult
            {
                ViewName = viewName,
                ViewData = new ViewDataDictionary(controller.ViewData)
                {
                    Model = new ErrorMetaViewModel
                    {
                        ErrorCode          = (int)responseStatusCode,
                        Message            = responseStatusCode.ToString(),
                        InstanceName       = instanceName,
                        SourceAction       = sourceAction,
                        DestinationActions = destinationActions
                    }
                }
            };

            return(view);
        }