GetUserInformationByEmailsQuery
Назначение
Получение информации о пользователях по списку Email адресов. Поиск через UserEntity.Search (Email IN Emails). Возвращает полные данные, включая UserIdentities, Permissions, Roles.
Цели
- Найти пользователей по списку Email
- Получить UserEntity, UserIdentities, Roles, Permissions для каждого
Query: GetUserInformationByEmailsQuery
Входные данные
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
| TenantId | Guid | Да | Идентификатор тенанта |
| Emails | IReadOnlyCollection<string> | Да | Коллекция Email адресов |
Result: GetUserInformationByEmailsQueryResult
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
| Entries | IReadOnlyCollection<GetUserInformationByIdentityUserQueryResult> | Да | Список пользователей (формат как у GetUserInformationByIdentityUser) |
ResultEntry: GetUserInformationByIdentityUserQueryResult
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
| UserId | Guid | Да | Идентификатор пользователя |
| TenantId | Guid | Да | Идентификатор тенанта |
| string | Да | ||
| PhoneNumber | string? | Нет | Номер телефона |
| Name | FullName | Да | ФИО |
| UserIdentities | IReadOnlyCollection<ProviderIdPairDomainModel> | Да | Связи с Identity Providers |
| Permissions | IReadOnlyCollection<UserPermissionDomainModel> | Да | Коды разрешений |
| Roles | IReadOnlyCollection<UserRoleDomainModel> | Да | Роли |
Бизнес-логика
Основной сценарий
- Если Emails пустая — вернуть Entries = [].
- Вызвать
userEntityRepository.Searchс фильтром Email IN Emails, сортировка по Email. - Если пользователи не найдены — вернуть Entries = [].
- Загрузить UserIdentities, Roles, Permissions через провайдеры (GetByUserIds).
- Сформировать Entries в формате GetUserInformationByIdentityUserQueryResult.
- Вернуть результат.
Альтернативные сценарии
- Пустой Emails или отсутствие совпадений — возвращается пустой Entries, без ошибки.
Диаграмма алгоритма
Связанные сущности
API
Internal API: GetUserInformationByEmails
Обратные ссылки
Автоссылки: где используется этот документ.
- Домен (CQRS) (1): Internal Domain
- API (1): UsersController (Internal)