Составные команды?

Обсуждаем, как правильно строить приложения
Ответить
wolfandman
Сообщения: 40
Зарегистрирован: 2012.06.04, 19:52

Составные команды?

Сообщение wolfandman »

Бизнес-логика:
1) назначить заказ пользователю (заранее созданный)
2) дать пользователю права на доступ к продукции

Эти две задачи должны быть выполнены в транзакции.
Бывают случаи, когда права даются без создания заказа - например, в подарок. Поэтому я разделил эти задачи на отдельные команды.

Правильно ли будет для реализации данной бизнес-логики создать одну команду, например, AddUserToOrderAndGiveAccessToProductsCommand и в хендлере вызвать поочерёдно каждую из команд? Как и что при этом тестировать?

А может быть лучше выполнить первую команду, выпустить событие, и вторую команду выполнять как обработчик события?
Аватара пользователя
ElisDN
Сообщения: 5826
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Составные команды?

Сообщение ElisDN »

wolfandman писал(а): 2023.01.04, 13:04 А может быть лучше выполнить первую команду, выпустить событие, и вторую команду выполнять как обработчик события?
Да, лучше всё делать так.
wolfandman
Сообщения: 40
Зарегистрирован: 2012.06.04, 19:52

Re: Составные команды?

Сообщение wolfandman »

ElisDN писал(а): 2023.01.04, 16:12
wolfandman писал(а): 2023.01.04, 13:04 А может быть лучше выполнить первую команду, выпустить событие, и вторую команду выполнять как обработчик события?
Да, лучше всё делать так.
Спасибо!
А тогда где лучше установить прослушивание этих событий? В Bootstrap было бы странно, потому что бизнес-логика будет находиться грубо говоря в конфиге проекта. В контроллере тоже неправильно.
Аватара пользователя
ElisDN
Сообщения: 5826
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Составные команды?

Сообщение ElisDN »

Напишите класс-слушатель с логикой и уже его зарегистрируйте в Bootstrap или конфиге.
Ответить