Вызов команд из другого метода Handle ()
Привет я пользуюсьПростой инжектор Библиотека DI и следит за некоторыми действительно интересными материалами об архитектурной модели, разработанной вокруг шаблона команды:
Meanwhile... on the command side of my architecture Meanwhile... on the query side of my architectureКонтейнер будет управлять временем жизниUnitOfWork
и я использую команды для выполнения определенных функций в базе данных.
У меня вопрос, есть ли у меня команда, напримерAddNewCustomerCommand
который, в свою очередь, выполняет другой вызов другой службе (то есть отправляет текстовое сообщение), с точки зрения дизайна это приемлемо или это должно быть сделано на более высоком уровне, и если да, то как лучше это сделать?
Пример кода ниже:
public class AddNewBusinessUnitHandler
: ICommandHandler<AddBusinessUnitCommand>
{
private IUnitOfWork uow;
private ICommandHandler<OtherServiceCommand> otherHandler;
AddNewBusinessUnitHandler(IUnitOfWork uow,
ICommandHandler<OtherServiceCommand> otherHandler)
{
this.uow = uow;
this.otherHandler = otherHandler;
}
public void Handle(AddBusinessUnitCommand command)
{
var businessUnit = new BusinessUnit()
{
Name = command.BusinessUnitName,
Address = command.BusinessUnitAddress
};
var otherCommand = new OtherServiceCommand()
{
welcomePostTo = command.BusinessUnitName
};
uow.BusinessUnitRepository.Add(businessUnit);
this.otherHandler.Handle(otherCommand);
}
}