Beispiel #1
0
        public PagedResultDto <RoleDto> GetRoles(GetRolePagedInput input)
        {
            var query = _roleRepository.GetAll()
                        .WhereIf(!string.IsNullOrEmpty(input.Filter), t => t.DisplayName.Contains(input.Filter)).OrderBy(c => c.Id);

            var count = query.Count();
            var list  = query.PageBy(input).ToList();
            var data  = new PagedResultDto <RoleDto>(count, list.MapTo <List <RoleDto> >());

            return(data);
        }
Beispiel #2
0
        public async Task <PagedResultDto <RoleListDto> > GetPaged(GetRolePagedInput input)
        {
            var query = _roleManager
                        .Roles
                        .WhereIf(
                !input.FilterText.IsNullOrWhiteSpace(),
                r =>
                r.Name.Contains(input.FilterText) ||
                r.DisplayName.Contains(input.FilterText)
                )
                        .WhereIf(
                input.PermissionNames != null && input.PermissionNames.Count > 0,
                r => r.Permissions.Any(rp => input.PermissionNames.Contains(rp.Name) && rp.IsGranted)
                );


            // // 判断权限符合当前权限列表的角色有哪些

            // if (input.PermissionNames!=null&&input.PermissionNames.Count>0)
            // {
            //     foreach (var permissionName in input.PermissionNames)
            //     {
            //query=         query.Where(a => a.Permissions.Any(p => p.Name == permissionName && p.IsGranted == true));
            //         //permissionName

            //     }
            // }


            var count = await query.CountAsync();

            var roles = await query
                        .PageBy(input)
                        .ToListAsync();


            return(new PagedResultDto <RoleListDto>
            {
                TotalCount = count,
                Items = ObjectMapper.Map <List <RoleListDto> >(roles)
            });
        }