Просто пытаюсь получить некоторые мнения о том, может или нет CommandHandlers связываться с другими CommandHandlers.
Вот простой случай, с которым я только что столкнулся. У меня есть ChangePasswordCommandHandler, команда которого выглядит следующим образом:
public class ChangePasswordCommand : Command
{
public string Email { get; }
public string OldPassword { get; set; }
public string NewPassword { get; set; }
}
Итак, внутри обработчика мне нужно проверить старый пароль пользователя, так что, как я вижу, у меня есть три варианта:
- отправить вызов моему ValidateCredentialsCommandHandler.
- выделяет некоторую логику проверки в службу, которую могут использовать оба обработчика.
- пусть вызывающий процесс сначала выполнит эту проверку, но теперь бизнес-логика выходит за пределы уровня моего домена.
Я сталкиваюсь с несколькими техническими проблемами, связанными с отправкой другим обработчикам, в основном, потому что я использую транзакцию для веб-запроса, поэтому у меня есть две транзакции, пытающиеся бороться.
Мысли