Beispiel #1
0
        public async Task <bool> DeleteAsync(Guid id)
        {
            var spec  = new FindMenuSpecification(id, true);
            var menus = await _menuRepository.ListAsync(spec);

            var result = await _menuRepository.DeleteAsync(menus);

            return(result == menus.Count);
        }
Beispiel #2
0
        public async Task <LayuiTablePageVO> GetAllMenus(int page, int limit, string keyword)
        {
            // 获取菜单
            var pageSpec     = new FindMenuSpecification(page, limit, keyword);
            var menuEntities = await _menuRepository.ListAsync(pageSpec);

            var totalCount = await _menuRepository.CountAsync(new CountMenuSpecfication(keyword));

            var menuBo = ToMenuTableBO(menuEntities);

            return(new LayuiTablePageVO(menuBo, totalCount, 1));
        }
        public async Task <LayuiTablePageVO> GetPagesAsync(int page, int limit, string keyword)
        {
            var permSpec      = new FindPermissionSpecification(page, limit, keyword);
            var permCountSpec = new CountPermissionSpecification(keyword);
            var menuSpec      = new FindMenuSpecification(Enums.IsDeleted.No, Enums.Status.Normal);

            var permissions = await permissionRepository.ListAsync(permSpec);

            var totalCount = await permissionRepository.CountAsync(permCountSpec);

            var menus = await menuRepository.ListAsync(menuSpec);

            var vo = ToPermissionVO(permissions, menus);

            return(new LayuiTablePageVO(vo, totalCount, 1));
        }
Beispiel #4
0
        public async Task <List <Menu> > GetUserMenusAsync(Guid userId, bool includeHideMenu = false)
        {
            // 获取当前用户信息
            var userSpec   = new FindUserSpecification(userId);
            var userEntity = await _userRepository.FirstOrDefaultAsync(userSpec);

            if (userEntity == null)
            {
                return(new List <Menu>());
            }

            // 获取当前用户对应的角色编码
            var userRoleSpec     = new FindUserRoleSpecification(userId);
            var userRoleEntities = await _userRoleRepository.ListAsync(userRoleSpec);

            var roleCodes = userRoleEntities.Select(x => x.RoleCode).ToList();

            // 获取角色对应的权限编码
            var rolePermissionSpec     = new FindRolePermissionSpecification(roleCodes);
            var rolePermissionEntities = await _rolePermissionRepository.ListAsync(rolePermissionSpec);

            var permissionCodes = rolePermissionEntities.Select(x => x.PermissionCode).ToList();

            // 获取权限对应的菜单编码
            var permissonSpec      = new FindPermissionSpecification(permissionCodes);
            var permissionEntities = await _permissionRepository.ListAsync(permissonSpec);

            var menuIds = permissionEntities.Select(x => x.MenuGuid);
            // 获取菜单
            var menuSpec     = new FindMenuSpecification(menuIds, IsDeleted.No, Status.Normal);
            var menuEntities = await _menuRepository.ListAsync(menuSpec);

            if (includeHideMenu)
            {
                return(menuEntities.OrderBy(x => x.Sort).ToList());
            }
            else
            {
                return(menuEntities.Where(x => x.HideMenu == YesOrNo.No).OrderBy(x => x.Sort).ToList());
            }
            //return ToMenuBO(menuEntities);
        }
Beispiel #5
0
        public async Task <IEnumerable <MenuTreeVO> > GetMenuTreeAsync(string currentUserId, string userType)
        {
            var spec         = new FindMenuSpecification(IsDeleted.No, Status.Normal);
            var menuEntities = await _menuRepository.ListAsync(spec);

            IEnumerable <MenuTreeVO> vo = new List <MenuTreeVO>();

            if (userType == UserType.SuperAdmin.ToString())
            {
                var allMenus = await GetSuperAdminMenus();

                vo = RecursionMenu(allMenus, Guid.Empty);
            }
            else
            {
                var userMenus = await GetUserMenusAsync(new Guid(currentUserId));

                var rootMenus = userMenus.FindAll(x => x.ParentGuid == Guid.Empty);
                vo = RecursionMenu(rootMenus, Guid.Empty);
            }
            return(vo);
        }