Beispiel #1
0
        public IActionResult CallRefreshOfNavigation(CoreSiteActions currentAction)
        {
            string controllerName = ControllerContext.RouteData.Values["controller"].ToString();
            string url            = Url.Action("RefreshNavigation", controllerName, new { currentAction = currentAction });

            return(Json(new { success = true, url = url, target = "#navigation-container" }));
        }
Beispiel #2
0
        private Task <NextPrevNavViewModel> GetNavigation(CoreSiteActions currentAction)
        {
            var currentMainMenuItem = _mainMenuOptions
                                      .Single(m => m.IsCurrentMainMenu(currentAction) ||
                                              m.SubMenus.Any(sm => sm.IsSubMenuCurrent(currentAction)));

            var currentMenuItem = currentMainMenuItem.SubMenus.Any() ?
                                  currentMainMenuItem.SubMenus.Single(s => s.IsSubMenuCurrent(currentAction)) as Menu :
                                  currentMainMenuItem as Menu;

            if (currentAction == CoreSiteActions.SoilTest)
            {
                currentMenuItem.UseJavaScriptInterceptMethod = true;
            }

            var mnvm = PopulateViewModel(currentMenuItem);

            return(Task.FromResult(mnvm));
        }
Beispiel #3
0
 public MainMenu GetMainMenu(CoreSiteActions action)
 {
     throw new NotImplementedException();
 }
Beispiel #4
0
        private Task <NextPreviousNavigationViewModel> GetManureNavigation(CoreSiteActions currentAction)
        {
            var hasAnimals           = _ud.FarmDetails()?.HasAnimals ?? true;
            var importsManureCompost = _ud.FarmDetails()?.ImportsManureCompost ?? true;
            var mnvm = new NextPreviousNavigationViewModel
            {
                UseJSInterceptMethod = false,
                PreviousController   = AppControllers.ManureManagement,
                NextController       = AppControllers.ManureManagement
            };

            if (currentAction == CoreSiteActions.Farm)
            {
                mnvm.NextAction = CoreSiteActions.ManureGeneratedObtained;
                if (!hasAnimals)
                {
                    mnvm.NextAction = CoreSiteActions.ManureImported;
                }

                if (!importsManureCompost)
                {
                    mnvm.NextAction     = CoreSiteActions.Fields;
                    mnvm.NextController = AppControllers.Fields;
                }
            }

            if (currentAction == CoreSiteActions.ManureGeneratedObtained)
            {
                mnvm.PreviousAction     = CoreSiteActions.Farm;
                mnvm.PreviousController = AppControllers.Farm;
                if (importsManureCompost)
                {
                    mnvm.NextAction = CoreSiteActions.ManureImported;
                }
                else if (hasAnimals)
                {
                    mnvm.NextAction = CoreSiteActions.ManureStorage;
                }
                else
                {
                    mnvm.NextAction     = CoreSiteActions.Fields;
                    mnvm.NextController = AppControllers.Fields;
                }
            }

            if (currentAction == CoreSiteActions.ManureImported)
            {
                mnvm.PreviousAction = CoreSiteActions.ManureGeneratedObtained;

                if (!hasAnimals)
                {
                    //Skip Previous Generated
                    mnvm.PreviousAction     = CoreSiteActions.Farm;
                    mnvm.PreviousController = AppControllers.Farm;
                }
                mnvm.NextAction = CoreSiteActions.ManureStorage;
                if (!hasAnimals && !importsManureCompost)
                {
                    mnvm.NextAction     = CoreSiteActions.Fields;
                    mnvm.NextController = AppControllers.Fields;
                }
            }

            if (currentAction == CoreSiteActions.ManureStorage)
            {
                mnvm.PreviousAction = CoreSiteActions.ManureImported;
                if (!importsManureCompost && hasAnimals)
                {
                    mnvm.PreviousAction = CoreSiteActions.ManureGeneratedObtained;
                }
                else
                {
                    mnvm.PreviousAction     = CoreSiteActions.Farm;
                    mnvm.PreviousController = AppControllers.Farm;
                }

                if (hasAnimals || importsManureCompost)
                {
                    mnvm.NextAction = CoreSiteActions.ManureNutrientAnalysis;
                }
                else
                {
                    mnvm.NextAction     = CoreSiteActions.Fields;
                    mnvm.NextController = AppControllers.Fields;
                }
            }

            if (currentAction == CoreSiteActions.ManureNutrientAnalysis)
            {
                mnvm.PreviousAction = CoreSiteActions.ManureStorage;
                if (!hasAnimals && !importsManureCompost)
                {
                    mnvm.PreviousAction     = CoreSiteActions.Farm;
                    mnvm.PreviousController = AppControllers.Farm;
                }

                mnvm.NextAction     = CoreSiteActions.Fields;
                mnvm.NextController = AppControllers.Fields;
            }

            if (currentAction == CoreSiteActions.Fields)
            {
                if (hasAnimals || importsManureCompost)
                {
                    mnvm.PreviousAction = CoreSiteActions.ManureNutrientAnalysis;
                }
                else
                {
                    mnvm.PreviousAction     = CoreSiteActions.Farm;
                    mnvm.PreviousController = AppControllers.Farm;
                }
                mnvm.NextAction     = CoreSiteActions.SoilTest;
                mnvm.NextController = AppControllers.Soil;
            }

            if (currentAction == CoreSiteActions.SoilTest)
            {
                mnvm.UseJSInterceptMethod = true;
                mnvm.PreviousAction       = CoreSiteActions.Fields;
                mnvm.PreviousController   = AppControllers.Fields;
                mnvm.NextAction           = CoreSiteActions.Calculate;
                mnvm.NextController       = AppControllers.Nutrients;
            }

            if (currentAction == CoreSiteActions.Calculate)
            {
                ProcessCalculateNavigation(mnvm);
            }

            mnvm.ViewPreviousUrl = Url.Action(mnvm.ViewPreviousAction,
                                              mnvm.ViewPreviousController,
                                              mnvm.PreviousParameters);

            mnvm.ViewNextUrl = Url.Action(mnvm.ViewNextAction,
                                          mnvm.ViewNextController,
                                          mnvm.NextParameters);

            return(Task.FromResult(mnvm));
        }
Beispiel #5
0
 public async Task <IViewComponentResult> InvokeAsync(CoreSiteActions currentAction)
 {
     return(View(await GetManureNavigation(currentAction)));
 }
Beispiel #6
0
 public bool IsCurrentMainMenu(CoreSiteActions currentAction)
 {
     return(IsCurrentMainMenu(currentAction.ToString()));
 }
Beispiel #7
0
 public IActionResult RefreshNextPreviousNavigation(CoreSiteActions currentAction)
 {
     return(ViewComponent("NextPreviousNavigation", new { currentAction = currentAction }));
 }
Beispiel #8
0
 public bool IsSubMenuCurrent(CoreSiteActions currentAction)
 {
     return(IsSubMenuCurrent(currentAction.ToString()));
 }
Beispiel #9
0
        private Task <NavigationDetailViewModel> GetNavigationAsync(CoreSiteActions currentAction)
        {
            var ndvm = new NavigationDetailViewModel();

            ndvm.mainMenuOptions = new List <MainMenu>();
            ndvm.subMenuOptions  = new List <SubMenu>();

            if (_ud.IsActiveSession())
            {
                ndvm.mainMenuOptions = _sd.GetMainMenus();

                var hasAnimals           = _ud.FarmDetails()?.HasAnimals ?? true;
                var importsManureCompost = _ud.FarmDetails()?.ImportsManureCompost ?? true;

                var greyOutClass = "top-level-nav-greyedout";

                var noManureCompost = !_ud.GetAllManagedManures().Any(); //Want true to grey out Storage and Nutrient Analysis

                ndvm.mainMenuOptions
                .Single(s => s.Action.Equals(CoreSiteActions.ManureGeneratedObtained.ToString()))
                .GreyOutClass = !hasAnimals && !importsManureCompost ? greyOutClass : string.Empty;

                if (currentAction > CoreSiteActions.Home)
                {
                    ndvm.UseInterceptJS = currentAction == CoreSiteActions.Farm;
                    var currentMainMenu =
                        ndvm.mainMenuOptions.SingleOrDefault(m => m.IsCurrentMainMenu(currentAction.ToString()));
                    if (currentMainMenu != null)
                    {
                        currentMainMenu.ElementId = "current";
                        ndvm.subMenuOptions       = currentMainMenu.SubMenus;

                        var currentSubMenu = ndvm.subMenuOptions.SingleOrDefault(sm =>
                                                                                 sm.Action.Equals(currentAction.ToString(), StringComparison.CurrentCultureIgnoreCase));

                        if (currentSubMenu != null)
                        {
                            currentSubMenu.ElementId = "current2";
                        }

                        if (currentMainMenu.Controller.Equals(AppControllers.ManureManagement.ToString()))
                        {
                            if (currentMainMenu.Controller == AppControllers.ManureManagement.ToString())
                            {
                                greyOutClass = "second-level-nav-greyedout";
                                ndvm.subMenuOptions
                                .Single(s => s.Action.Equals(CoreSiteActions.ManureGeneratedObtained.ToString()))
                                .GreyOutClass = !hasAnimals ? greyOutClass : string.Empty;

                                ndvm.subMenuOptions
                                .Single(s => s.Action.Equals(CoreSiteActions.ManureImported.ToString()))
                                .GreyOutClass = !importsManureCompost ? greyOutClass : string.Empty;

                                ndvm.subMenuOptions
                                .Single(s => s.Action.Equals(CoreSiteActions.ManureStorage.ToString()))
                                .GreyOutClass = !hasAnimals && !importsManureCompost
                                        ? greyOutClass
                                        : string.Empty;

                                ndvm.subMenuOptions
                                .Single(s => s.Action.Equals(CoreSiteActions.ManureNutrientAnalysis.ToString()))
                                .GreyOutClass = !hasAnimals && !importsManureCompost
                                        ? greyOutClass
                                        : string.Empty;
                            }
                        }
                    }
                }
            }

            return(Task.FromResult(ndvm));
        }