GetUserInformationByIdQuery
Назначение
Получение информации о пользователях по коллекции идентификаторов в рамках тенанта. Internal API. Возвращает базовые данные (UserId, TenantId, Email, PhoneNumber, Name) и связи с Identity Providers (UserIdentities).
Цели
- Загрузить несколько пользователей по UserIds за один запрос
- Получить связи UserIdentity (Provider, ProviderUserId) через IUserIdentitiesProvider
Query: GetUserInformationByIdQuery
Входные данные
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
| TenantId | Guid | Да | Идентификатор тенанта |
| UserIds | IReadOnlyCollection<Guid> | Да | Коллекция ID пользователей (мин. 1) |
Result: GetUserInformationByIdQueryResult
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
| Entries | IReadOnlyCollection<GetUserInformationByIdQueryResultEntry> | Да | Список пользователей |
ResultEntry: GetUserInformationByIdQueryResultEntry
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
| UserId | Guid | Да | Идентификатор пользователя |
| TenantId | Guid | Да | Идентификатор тенанта |
| string | Да | ||
| 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
Обратные ссылки
Автоссылки: где используется этот документ.
- Домен (CQRS) (1): Internal Domain
- API (1): UsersController (Internal)