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); }
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)); }
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); }