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()
                       ));
        }
Example #2
0
 public async Task <PagedResultDto <NameValueDto> > FindRolesAsync(FindOrganizationUnitRolesInput input)
 {
     return(await _organizationUnitRoleAppService.FindRolesAsync(input));
 }