/// <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); }
public PartialViewResult Menu() { var model = new NavMenuModel { CurrentUser = "******", SiteHeader = "Learning English with Staad!" }; return(PartialView(model)); }
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); }
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); }