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

GetUserInformationByEmailsQuery

Назначение

Получение информации о пользователях по списку Email адресов. Поиск через UserEntity.Search (Email IN Emails). Возвращает полные данные, включая UserIdentities, Permissions, Roles.

Цели

  • Найти пользователей по списку Email
  • Получить UserEntity, UserIdentities, Roles, Permissions для каждого

Query: GetUserInformationByEmailsQuery

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

ПолеТипОбязательноеОписание
TenantIdGuidДаИдентификатор тенанта
EmailsIReadOnlyCollection<string>ДаКоллекция Email адресов

Result: GetUserInformationByEmailsQueryResult

ПолеТипОбязательноеОписание
EntriesIReadOnlyCollection<GetUserInformationByIdentityUserQueryResult>ДаСписок пользователей (формат как у GetUserInformationByIdentityUser)

ResultEntry: GetUserInformationByIdentityUserQueryResult

ПолеТипОбязательноеОписание
UserIdGuidДаИдентификатор пользователя
TenantIdGuidДаИдентификатор тенанта
EmailstringДаEmail
PhoneNumberstring?НетНомер телефона
NameFullNameДаФИО
UserIdentitiesIReadOnlyCollection<ProviderIdPairDomainModel>ДаСвязи с Identity Providers
PermissionsIReadOnlyCollection<UserPermissionDomainModel>ДаКоды разрешений
RolesIReadOnlyCollection<UserRoleDomainModel>ДаРоли

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

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

  1. Если Emails пустая — вернуть Entries = [].
  2. Вызвать userEntityRepository.Search с фильтром Email IN Emails, сортировка по Email.
  3. Если пользователи не найдены — вернуть Entries = [].
  4. Загрузить UserIdentities, Roles, Permissions через провайдеры (GetByUserIds).
  5. Сформировать Entries в формате GetUserInformationByIdentityUserQueryResult.
  6. Вернуть результат.

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

  • Пустой Emails или отсутствие совпадений — возвращается пустой Entries, без ошибки.

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

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

API

Internal API: GetUserInformationByEmails