Esempio n. 1
0
        /// <summary>
        /// 获取该模块导航菜单
        /// </summary>
        /// <param name="moduleText"></param>
        /// <param name="cacheKey"></param>
        /// <returns></returns>
        protected List <NavMenuModel> GetMenuNavModules(string moduleText, string cacheKey)
        {
            List <NavMenuModel>          navMenus = new List <NavMenuModel>();
            List <ModuleNavigationModel> mdlNavs  = GetChildrenNavModules(moduleText, cacheKey, 2);

            if (mdlNavs != null && mdlNavs.Count > 0)
            {
                NavMenuModel mdl    = null;
                NavMenuModel subMdl = null;
                mdlNavs.ForEach(nav =>
                {
                    var navMdls = GetChildrenNavModules(nav.ModuleText, nav.ModuleName, 3);
                    mdl         = CreateNavMenuModel(mdl, nav, navMdls);
                    navMenus.Add(mdl);
                    if (navMdls != null && navMdls.Count > 0)
                    {
                        navMdls.ForEach(subNav =>
                        {
                            var subNavMdls = GetChildrenNavModules(subNav.ModuleText, subNav.ModuleName, 4);
                            subMdl         = CreateNavMenuModel(subMdl, subNav, subNavMdls);
                            navMenus.Add(subMdl);
                        });
                    }
                });
            }
            return(navMenus);
        }
Esempio n. 2
0
        public PartialViewResult Menu()
        {
            var model = new NavMenuModel
            {
                CurrentUser = "******",
                SiteHeader  = "Learning English with Staad!"
            };

            return(PartialView(model));
        }
Esempio n. 3
0
 private NavMenuModel CreateNavMenuModel(NavMenuModel mdl, ModuleNavigationModel nav, List <ModuleNavigationModel> navMdls)
 {
     mdl = new NavMenuModel()
     {
         Name      = nav.ModuleName,
         Text      = nav.ModuleText,
         AtLevel   = nav.AtLevel,
         Item      = nav,
         Childrens = navMdls
     };
     return(mdl);
 }
        public List <NavMenuModel> GetNavMenus()
        {
            var allMenu = menuRepository.GetAll().Where(t => t.IsActive == true).ToList();

            Action <NavMenuModel> buildTree = null;

            buildTree = model =>
            {
                var children = allMenu.Where(t => t.ParentId == model.Id).ToList();
                foreach (var item in children)
                {
                    var m = new NavMenuModel()
                    {
                        Icon     = item.Icon,
                        Id       = item.Id,
                        Name     = item.Name,
                        ParentId = item.ParentId,
                        RouteTo  = item.RouteTo
                    };
                    buildTree(m);
                    model.Children.Add(m);
                }
            };

            var result    = new List <NavMenuModel>();
            var rootItems = allMenu.Where(t => t.ParentId == null).ToList();

            foreach (var item in rootItems)
            {
                var m = new NavMenuModel()
                {
                    Icon     = item.Icon,
                    Id       = item.Id,
                    Name     = item.Name,
                    ParentId = item.ParentId,
                    RouteTo  = item.RouteTo
                };
                buildTree(m);
                result.Add(m);
            }
            return(result);
        }
        public List <NavMenuModel> GetAuthorizedMenus()
        {
            var userInfo = SessionData.Get <UserInfo>("UserInfo");

            if (userInfo == null)
            {
                throw new UnauthorizedException();
            }
            var user                      = userRepository.Get(userInfo.Id);
            var allMenu                   = menuRepository.GetAll().Where(t => t.IsActive == true).ToList();
            var authorizedIds             = menuRepository.GetAllAccessRight().Where(t => t.RoleId == user.RoleId).Select(t => t.MenuId).ToList();
            var authorizedMenus           = allMenu.Where(t => authorizedIds.Contains(t.Id)).ToList();
            var authorizedWithParentMenus = new List <Menu>();

            Action <Menu> findParent = null;

            findParent = m =>
            {
                var parent = allMenu.Where(t => t.Id == m.ParentId).FirstOrDefault();
                if (parent != null && !allMenu.Contains(parent))
                {
                    findParent(parent);
                }
                authorizedWithParentMenus.Add(m);
            };

            foreach (var item in authorizedMenus)
            {
                findParent(item);
            }

            allMenu = authorizedWithParentMenus.ToList();

            Action <NavMenuModel> buildTree = null;

            buildTree = model =>
            {
                var children = allMenu.Where(t => t.ParentId == model.Id).ToList();
                foreach (var item in children)
                {
                    var m = new NavMenuModel()
                    {
                        Icon     = item.Icon,
                        Id       = item.Id,
                        Name     = item.Name,
                        ParentId = item.ParentId,
                        RouteTo  = item.RouteTo
                    };
                    buildTree(m);
                    model.Children.Add(m);
                }
            };

            var result    = new List <NavMenuModel>();
            var rootItems = allMenu.Where(t => t.ParentId == null).ToList();

            foreach (var item in rootItems)
            {
                var m = new NavMenuModel()
                {
                    Icon     = item.Icon,
                    Id       = item.Id,
                    Name     = item.Name,
                    ParentId = item.ParentId,
                    RouteTo  = item.RouteTo
                };
                buildTree(m);
                result.Add(m);
            }
            return(result);
        }
Esempio n. 6
0
        private static NavMenuModel CreateNavMenuMockup(string prefixUrl)
        {
            NavMenuModel nav  = new NavMenuModel();
            Menu         Home = new Menu
            {
                DisplayText = "HOME",
                MenuName    = "Home",
                Link        = prefixUrl + "/Home/Index",
                Order       = 0
            };

            Menu Shop = new Menu
            {
                DisplayText = "SHOP",
                MenuName    = "Shop",
                Link        = prefixUrl + "/Shop/Items",
                Order       = 1
            };

            Menu Gallery = new Menu
            {
                DisplayText = "GALLERY",
                MenuName    = "Gallery",
                Order       = 2,
            };
            Menu Mobile = new Menu
            {
                DisplayText = "MOBILE",
                MenuName    = "Mobile",
                Order       = 1,
            };
            Menu Nokia = new Menu
            {
                DisplayText = "NOKIA",
                MenuName    = "Nokia",
                Order       = 1,
            };
            Menu _3310 = new Menu
            {
                DisplayText = "NOKIA 3310",
                MenuName    = "Nokia3310",
                Order       = 1,
            };

            Nokia.ChildMenus.Add(_3310);
            Mobile.ChildMenus.Add(Nokia);

            Menu TV = new Menu
            {
                DisplayText = "TV",
                MenuName    = "TV",
                Link        = prefixUrl + "/Shop/Items",
                Order       = 2,
            };

            Gallery.ChildMenus.Add(Mobile);
            Gallery.ChildMenus.Add(TV);



            Menu About = new Menu
            {
                DisplayText = "ABOUT",
                MenuName    = "About",
                Link        = prefixUrl + "/Shop/Items",
                Order       = 3
            };
            Menu Contact = new Menu
            {
                DisplayText = "CONTACT",
                MenuName    = "Contact",
                Link        = prefixUrl + "/Shop/Items",
                Order       = 4
            };

            nav.AddRoot(Home);
            nav.AddRoot(Shop);
            nav.AddRoot(Gallery);
            nav.AddRoot(About);
            nav.AddRoot(Contact);
            return(nav);
        }