Пример #1
0
 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);
     });
 }
Пример #2
0
        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);
        }