コード例 #1
0
        private List <SubMenu> FilterPoultrySubMenus(UserJourney journey, List <SubMenu> subMenus)
        {
            //Skip Nutrients Menu for Ranch if Nothing to Analyze
            if (journey == UserJourney.Poultry)
            {
                if (subMenus.Any(sm => sm.UsesFeaturePages &&
                                 sm.Page.Equals(FeaturePages.PoultryNutrientsIndex.GetDescription())) &&
                    !_ud.GetFarmManures().Any() &&
                    !_ud.GetAllManagedManures().Any(mm => !mm.AssignedWithNutrientAnalysis))
                {
                    //Hide Nutrient Analysis Sub Menu
                    subMenus
                    .Remove(subMenus
                            .Single(sm => sm.Page.Equals(FeaturePages.PoultryNutrientsIndex.GetDescription())));
                }
            }

            return(subMenus);
        }
コード例 #2
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));
        }