GetUserInformationByIdQuery
Назначение
Получение информации о пользователях по коллекции идентификаторов в рамках тенанта. Internal API. Возвращает базовые данные (UserId, TenantId, Email, PhoneNumber, Name) и связи с Identity Providers (UserIdentities).
Цели
- Загрузить несколько пользователей по UserIds за один запрос
- Получить связи UserIdentity (Provider, ProviderUserId) через IUserIdentitiesProvider
Входные данные
| Поле | Тип | Обязательное | Описание |
|---|
| TenantId | Guid | Да | Идентификатор тенанта |
| UserIds | IReadOnlyCollection<Guid> | Да | Коллекция ID пользователей (мин. 1) |
| Поле | Тип | Обязательное | Описание |
|---|
| Entries | IReadOnlyCollection<GetUserInformationByIdQueryResultEntry> | Да | Список пользователей |
ResultEntry: GetUserInformationByIdQueryResultEntry
| Поле | Тип | Обязательное | Описание |
|---|
| UserId | Guid | Да | Идентификатор пользователя |
| TenantId | Guid | Да | Идентификатор тенанта |
| Email | string | Да | Email |
| PhoneNumber | string? | Нет | Номер телефона |
| Name | FullName | Да | ФИО |
| UserIdentities | IReadOnlyCollection<ProviderIdPairDomainModel> | Да | Связи с Identity Providers (Provider, ProviderUserId) |
Бизнес-логика
Основной сценарий
- Вызвать
userEntityRepository.GetByIds по UserIds.
- Вызвать
userIdentitiesProvider.GetByUserIds для загрузки UserIdentityEntity.
- Сформировать GetUserInformationByIdQueryResultEntry для каждой UserEntity.
- Вернуть результат.
Альтернативные сценарии
- Несуществующие UserIds игнорируются: в Entries попадают только найденные пользователи.
Диаграмма алгоритма
Связанные сущности
API
Internal API: GetUserInformationById