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