Я пытаюсь понять, как лучше всего подойти к этой проблеме. Я импортирую файл, содержащий группу пользователей, поэтому я создал обработчик с именем ImportUsersCommandHandler
, а моя команда - ImportUsersCommand
, которая имеет List<User>
в качестве одного из параметров.
В обработчике для каждого пользователя, которого мне нужно импортировать, я должен убедиться, что UserType
действителен, вот где возникает путаница. Мне нужно выполнить запрос к базе данных, чтобы получить список всех возможных типов пользователей и чем для каждого импортируемого пользователя, я хочу убедиться, что user type id
в импорте совпадает с тем, что находится в базе данных.
У меня есть 3 варианта.
- Создайте запрос
GetUserTypesQuery
и получите остальное, а затем передайте его ImportUsersCommand в виде списка и проверьте внутри обработчика команд. - Вызвать
GetUserTypesQuery
из самой команды и не передавать ее (команда, вызывающая другой запрос) - Не создавайте
GetUsersTypeQuery
, а просто выполняйте результаты запроса в команде (все еще запрос, но запрос / обработчик не задействован)
Мне кажется, что все это грязные решения, а не правильный способ применения CQRS.