public void ChildNav(List <NavDTO> childrens, List <PermisionDetail> lists, List <PermisionDetail> permisions, List <SysNav> menus, PermisionDetail itm) { lists.ForEach(child => { var menu = menus.FirstOrDefault(f => f.Id == child.NavId); var children = new List <NavDTO>(); var listChild = permisions.Where(w => w.ParentId == child.Id).ToList(); ChildNav(children, listChild, permisions, menus, child); var navChild = new NavDTO() { id = child.Id, name = menu.Name, icon = menu.Icon, title = menu.Title, url = "/" + menu.Url, children = children, }; childrens.Add(navChild); }); }
public dynamic GetAllNavs(ClaimsPrincipal principal) { dynamic result = new ExpandoObject(); try { SessionManager.DoWork(ss => { var userinfo = ContextProvider.GetUserInfo(principal); var navs = new List <NavDTO>(); var menus = ss.Query <SysNav>().Where(w => w.Active == true).ToList(); var permisions = ss.Query <PermisionDetail>().Where(w => w.PermisionId == userinfo.PermisionId && w.ActionCode == "VIEW_PAGE").ToList(); var root = ss.Query <PermisionDetail>().Where(w => w.ParentId == Guid.Parse("10000000-0000-0000-0000-000000000000")).ToList(); root.ForEach(itm => { var menu = menus.FirstOrDefault(f => f.Id == itm.NavId); var children = new List <NavDTO>(); var listChild = permisions.Where(w => w.ParentId == itm.Id).ToList(); ChildNav(children, listChild, permisions, menus, itm); var nav = new NavDTO() { id = itm.Id, name = menu.Name, icon = menu.Icon, title = menu.Title, url = "/" + menu.Url, children = children, }; navs.Add(nav); }); result = navs.ToList(); }); } catch (Exception) { } return(result); }