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

GetUserInformationByIdQuery

Назначение

Получение информации о пользователях по коллекции идентификаторов в рамках тенанта. Internal API. Возвращает базовые данные (UserId, TenantId, Email, PhoneNumber, Name) и связи с Identity Providers (UserIdentities).

Цели

  • Загрузить несколько пользователей по UserIds за один запрос
  • Получить связи UserIdentity (Provider, ProviderUserId) через IUserIdentitiesProvider

Query: GetUserInformationByIdQuery

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

ПолеТипОбязательноеОписание
TenantIdGuidДаИдентификатор тенанта
UserIdsIReadOnlyCollection<Guid>ДаКоллекция ID пользователей (мин. 1)

Result: GetUserInformationByIdQueryResult

ПолеТипОбязательноеОписание
EntriesIReadOnlyCollection<GetUserInformationByIdQueryResultEntry>ДаСписок пользователей

ResultEntry: GetUserInformationByIdQueryResultEntry

ПолеТипОбязательноеОписание
UserIdGuidДаИдентификатор пользователя
TenantIdGuidДаИдентификатор тенанта
EmailstringДаEmail
PhoneNumberstring?НетНомер телефона
NameFullNameДаФИО
UserIdentitiesIReadOnlyCollection<ProviderIdPairDomainModel>ДаСвязи с Identity Providers (Provider, ProviderUserId)

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

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

  1. Вызвать userEntityRepository.GetByIds по UserIds.
  2. Вызвать userIdentitiesProvider.GetByUserIds для загрузки UserIdentityEntity.
  3. Сформировать GetUserInformationByIdQueryResultEntry для каждой UserEntity.
  4. Вернуть результат.

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

  • Несуществующие UserIds игнорируются: в Entries попадают только найденные пользователи.

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

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

API

Internal API: GetUserInformationById