public async Task <PagedResultDto <NameValueDto> > FindRolesAsync(FindOrganizationUnitRolesInput input) { var roleIdsInOrganizationUnit = (await _organizationUnitRoleRepository.FindOrganizationUnitRolesAsync(input.OrganizationUnitId).ConfigureAwait(false)) .Select(uou => uou.RoleId); var query = _roleManager.Roles .Where(u => !roleIdsInOrganizationUnit.Contains(u.Id)) .WhereIf( !input.Filter.IsNullOrWhiteSpace(), u => u.NormalizedName.Contains(input.Filter) || u.Name.Contains(input.Filter) ); var roleCount = await _organizationUnitRoleRepository.GetCountAsync(); var roles = query .OrderBy(u => u.Name) .PageBy(input) .ToList(); return(new PagedResultDto <NameValueDto>( roleCount, roles.Select(u => new NameValueDto( u.Name, u.Id.ToString() ) ).ToList() )); }
public async Task <PagedResultDto <NameValueDto> > FindRolesAsync(FindOrganizationUnitRolesInput input) { return(await _organizationUnitRoleAppService.FindRolesAsync(input)); }