コード例 #1
0
        public async Task <IResultModel> MenuTree(string id)
        {
            var menus = await _menuRepository.GetListAsync(m => m.IsDel == false);

            var menuButtons = await _menuButtonRepository.GetListAsync(m => m.IsDel == false);

            var roleMenus = await _roleMenuRepository.GetListAsync(m => m.RoleId == id && m.MenuChecked == true && m.IsDel == false);

            var roleMenuButtons = await _rolePermissionRepository.GetListAsync(m => m.RoleId == id && m.IsDel == false);

            var all = _mapper.Map <List <RoleMenuPermissionTreeModel> >(menus);

            all.ForEach(m =>
            {
                m.Buttons = _mapper.Map <List <RoleMenuButtons> >(menuButtons.Where(b => b.MenuId == m.MenuId).OrderBy(b => b.Sort));
                m.Buttons.ForEach(t =>
                {
                    t.Checked  = roleMenuButtons.Any(r => r.PermissionCode == t.PermissionCode);
                    t.Disabled = !roleMenus.Any(o => o.MenuId == t.MenuId);
                });
            });

            var result = new RoleMenuPermissionResultModel()
            {
                Menus       = ResolveMenuTree(all, Guid.Empty.ToString("N")),
                RoleMenuIds = roleMenus.Select(m => m.MenuId).ToList()
            };

            return(ResultModel.Success(result));
        }
コード例 #2
0
ファイル: PermissionService.cs プロジェクト: qshitems/QH
        public async Task <IResultModel> GetPermissionListTree(int roleId = 0)
        {
            var permissions = await _permissionRepository.GetListAsync(new { IsDeleted = 0 }) as List <PermissionEntity>;

            DTreeModel dTree = new DTreeModel();

            dTree.Data = _mapper.Map(permissions, dTree.Data);
            var permissionIds = (await _rolePermissionRepository.GetListAsync(new { roleId })).Select(a => a.PermissionId).ToList();

            for (int i = 0; i < dTree.Data.Count; i++)
            {
                if (permissionIds.Contains(dTree.Data[i].Id))
                {
                    dTree.Data[i].CheckArr = "1";
                }
            }
            return(ResultModel.Success(dTree));
        }