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)); }
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)); }