Example #1
0
        /// <summary>
        /// 获取所有树形菜单
        /// </summary>
        /// <returns></returns>
        public List <MenuShortDto> LoadTree(Guid appId)
        {
            var dataMenus = _menuRepository.FindAsNoTracking().Where(a => a.IsDeleted == false && a.AppId == appId).OrderBy(a => a.SortId).ToList();
            List <MenuShortDto> menuShorList = new List <MenuShortDto>();

            foreach (var item in dataMenus.Where(a => a.ParentId == null))
            {
                MenuShortDto catalogShort = new MenuShortDto();
                GetTree(item, catalogShort, dataMenus);
                menuShorList.Add(catalogShort);
            }
            return(menuShorList);
        }
Example #2
0
        /// <summary>
        /// 获取角色菜单
        /// </summary>
        /// <param name="roleIdList"></param>
        /// <returns></returns>
        public List <MenuShortDto> GetRoleMenus(List <Guid> roleIdList, Guid appId)
        {
            var dataMenus = _menuRepository.FindAsNoTracking().Where(a => a.RoleMenus.Any(b => roleIdList.Contains(b.RoleId)) && a.AppId == appId).OrderBy(a => a.SortId).ToList();
            List <MenuShortDto> menuShorList = new List <MenuShortDto>();

            foreach (var item in dataMenus.Where(a => a.ParentId == null))
            {
                MenuShortDto catalogShort = new MenuShortDto();
                GetTree(item, catalogShort, dataMenus);
                menuShorList.Add(catalogShort);
            }
            return(menuShorList);
        }
Example #3
0
        /// <summary>
        /// 树形菜单递归
        /// </summary>
        /// <param name="menu"></param>
        /// <param name="treeModel"></param>
        /// <param name="list"></param>
        private void GetTree(Menu menu, MenuShortDto treeModel, List <Menu> list)
        {
            if (null == menu)
            {
                return;
            }
            treeModel.Id    = menu.Id.ToString();
            treeModel.Name  = menu.Name;
            treeModel.Group = menu.IsGroup;
            treeModel.Link  = menu.Link;
            treeModel.Icon  = menu.Icon;
            var childs = list.Where(a => a.ParentId == menu.Id).ToArray();

            foreach (var child in childs)
            {
                MenuShortDto node = new MenuShortDto();
                treeModel.Children.Add(node);
                GetTree(child, node, list);
            }
        }