GetUserInformationByEmailsQuery
Назначение
Получение информации о пользователях по списку Email адресов. Поиск через UserEntity.Search (Email IN Emails). Возвращает полные данные, включая UserIdentities, Permissions, Roles.
Цели
- Найти пользователей по списку Email
- Получить UserEntity, UserIdentities, Roles, Permissions для каждого
Входные данные
| Поле | Тип | Обязательное | Описание |
|---|
| TenantId | Guid | Да | Идентификатор тенанта |
| Emails | IReadOnlyCollection<string> | Да | Коллекция Email адресов |
| Поле | Тип | Обязательное | Описание |
|---|
| Entries | IReadOnlyCollection<GetUserInformationByIdentityUserQueryResult> | Да | Список пользователей (формат как у GetUserInformationByIdentityUser) |
ResultEntry: GetUserInformationByIdentityUserQueryResult
| Поле | Тип | Обязательное | Описание |
|---|
| UserId | Guid | Да | Идентификатор пользователя |
| TenantId | Guid | Да | Идентификатор тенанта |
| Email | string | Да | Email |
| 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