Перейти к основному содержимому

GetEmployeesListByRoleIdQuery

Назначение

Получение списка сотрудников, у которых есть указанная роль. Используется для отображения пользователей по роли. Требует разрешение Identity.Employees.View.

Цели

  • Фильтрация пользователей по RoleId через UserRoleReferences
  • Пагинация и сортировка по CreatedAt (DESC)

Query: GetEmployeesListByRoleIdQuery

Входные данные

ПолеТипОбязательноеОписание
RoleIdlongДаИдентификатор роли
PagingPagingQueryДаПагинация

Result: GetEmployeesListByRoleIdQueryResult

ПолеТипОбязательноеОписание
EntriesPagingResult<GetEmployeesListByRoleIdQueryResultEntry>ДаПостраничный список сотрудников

ResultEntry: GetEmployeesListByRoleIdQueryResultEntry

ПолеТипОбязательноеОписание
UserIdGuidДаИдентификатор пользователя
CreatedAtDateTimeOffsetДаДата создания
EmailstringДаEmail
PhoneNumberstring?НетТелефон
NameFullNameДаФИО

Бизнес-логика

Основной сценарий

  1. Проверить существование роли через roleEntityRepository.FindById.
  2. Если роль не найдена — ошибка «Роль не найдена».
  3. Вызвать userEntityRepository.Filter с условием UserRoleReferences.Any(ur => ur.RoleId == RoleId), сортировка по CreatedAt (DESC).
  4. Сформировать Entries (без Status и Roles).
  5. Вернуть результат.

Альтернативные сценарии

  • Роль не найдена: ошибка «Роль не найдена» с метаданными RoleId.

Диаграмма алгоритма

Связанные сущности