GetEmployeesListByRoleIdQuery
Назначение
Получение списка сотрудников, у которых есть указанная роль. Используется для отображения пользователей по роли. Требует разрешение Identity.Employees.View.
Цели
- Фильтрация пользователей по RoleId через UserRoleReferences
- Пагинация и сортировка по CreatedAt (DESC)
Query: GetEmployeesListByRoleIdQuery
Входные данные
| Поле | Тип | Обязательное | Описание |
|---|
| RoleId | long | Да | Идентификатор роли |
| Paging | PagingQuery | Да | Пагинация |
Result: GetEmployeesListByRoleIdQueryResult
| Поле | Тип | Обязательное | Описание |
|---|
| Entries | PagingResult<GetEmployeesListByRoleIdQueryResultEntry> | Да | Постраничный список сотрудников |
ResultEntry: GetEmployeesListByRoleIdQueryResultEntry
| Поле | Тип | Обязательное | Описание |
|---|
| UserId | Guid | Да | Идентификатор пользователя |
| CreatedAt | DateTimeOffset | Да | Дата создания |
| Email | string | Да | Email |
| PhoneNumber | string? | Нет | Телефон |
| Name | FullName | Да | ФИО |
Бизнес-логика
Основной сценарий
- Проверить существование роли через
roleEntityRepository.FindById.
- Если роль не найдена — ошибка «Роль не найдена».
- Вызвать
userEntityRepository.Filter с условием UserRoleReferences.Any(ur => ur.RoleId == RoleId), сортировка по CreatedAt (DESC).
- Сформировать Entries (без Status и Roles).
- Вернуть результат.
Альтернативные сценарии
- Роль не найдена: ошибка «Роль не найдена» с метаданными RoleId.
Диаграмма алгоритма
Связанные сущности