Ejemplo n.º 1
0
        private NextPrevNavViewModel PopulateViewModel(Menu currentMenuItem)
        {
            var viewModel = new NextPrevNavViewModel
            {
                UseJSInterceptMethod = currentMenuItem.UseJavaScriptInterceptMethod,
                PreviousController   = EnumHelper <AppControllers> .Exists(currentMenuItem.PreviousController) ?
                                       EnumHelper <AppControllers> .Parse(currentMenuItem.PreviousController) : AppControllers.NotUsed,
                PreviousAction = EnumHelper <CoreSiteActions> .Exists(currentMenuItem.PreviousAction) ?
                                 EnumHelper <CoreSiteActions> .Parse(currentMenuItem.PreviousAction) : CoreSiteActions.NotUsed,
                NextController = EnumHelper <AppControllers> .Exists(currentMenuItem.NextController) ?
                                 EnumHelper <AppControllers> .Parse(currentMenuItem.NextController) : AppControllers.NotUsed,
                NextAction = EnumHelper <CoreSiteActions> .Exists(currentMenuItem.NextAction) ?
                             EnumHelper <CoreSiteActions> .Parse(currentMenuItem.NextAction) : CoreSiteActions.NotUsed,
                PreviousPage = EnumHelper <FeaturePages> .ExistsWithDescription(currentMenuItem.PreviousPage) ?
                               EnumHelper <FeaturePages> .GetValueFromDescription(currentMenuItem.PreviousPage) : FeaturePages.NotUsed,
                NextPage = EnumHelper <FeaturePages> .ExistsWithDescription(currentMenuItem.NextPage) ?
                           EnumHelper <FeaturePages> .GetValueFromDescription(currentMenuItem.NextPage) : FeaturePages.NotUsed
            };

            if (currentMenuItem.Action != null &&
                currentMenuItem.Action.Equals(CoreSiteActions.Calculate.ToString(), StringComparison.OrdinalIgnoreCase))
            {
                ProcessCalculateNavigation(currentMenuItem, viewModel);
            }

            viewModel.ViewPreviousUrl = viewModel.PreviousIsAPage ?
                                        Url.Page(viewModel.PreviousPage.GetDescription()) :
                                        Url.Action(viewModel.ViewPreviousAction, viewModel.ViewPreviousController, viewModel.PreviousParameters);

            viewModel.ViewNextUrl = viewModel.NextIsAPage ?
                                    Url.Page(viewModel.NextPage.GetDescription()) :
                                    Url.Action(viewModel.ViewNextAction, viewModel.ViewNextController, viewModel.NextParameters);

            return(viewModel);
        }
Ejemplo n.º 2
0
        public async Task <IViewComponentResult> InvokeAsync(NextPrevNavViewModel currentNextPrevVm)
        {
            NextPrevNavViewModel result;

            if (currentNextPrevVm.CurrentIsAPage)
            {
                result = await GetNavigation(currentNextPrevVm.CurrentPage);
            }
            else
            {
                result = await GetNavigation(currentNextPrevVm.CurrentAction);
            }

            result.ShowPrevious = currentNextPrevVm.ShowPrevious;
            result.ShowNext     = currentNextPrevVm.ShowNext;
            return(View(result));
        }
Ejemplo n.º 3
0
        private NextPrevNavViewModel ProcessCalculateNavigation(Menu currentMenuItem, NextPrevNavViewModel mnvm)
        {
            var result       = mnvm;
            var fields       = _ud.GetFields();
            var currentField = HttpContext.Request.Query["nme"];

            if (fields.Count == 0)
            {
                return(result);
            }

            result.NextAction         = CoreSiteActions.Calculate;
            result.NextController     = AppControllers.Nutrients;
            result.PreviousAction     = CoreSiteActions.Calculate;
            result.PreviousController = AppControllers.Nutrients;

            var currentFieldIndex = !currentField.Any() ? 0 :
                                    fields.FindIndex(f =>
                                                     f.FieldName.Equals(currentField.ToString(), StringComparison.CurrentCultureIgnoreCase));

            if (currentFieldIndex == 0)
            {
                result.PreviousAction = EnumHelper <CoreSiteActions> .Parse(currentMenuItem.PreviousAction);

                result.PreviousController = EnumHelper <AppControllers> .Parse(currentMenuItem.PreviousController);
            }
            else
            {
                result.PreviousParameters = new { nme = fields[currentFieldIndex - 1].FieldName };
            }

            if (currentFieldIndex + 1 < fields.Count)
            {
                result.NextParameters = new { nme = fields[currentFieldIndex + 1].FieldName };
            }
            else
            {
                result.NextAction = EnumHelper <CoreSiteActions> .Parse(currentMenuItem.NextAction);

                result.NextController = EnumHelper <AppControllers> .Parse(currentMenuItem.NextController);
            }

            return(result);
        }