Llamando comandos desde otro método de comando ()
Hola estoy usando elInyector simple DI y he estado siguiendo un material realmente interesante sobre un modelo arquitectónico diseñado alrededor del patrón de comando:
Mientras tanto ... en el lado de comando de mi arquitecturaMientras tanto ... en el lado de consulta de mi arquitecturaEl contenedor gestionará la vida útil de laUnitOfWork
, y estoy usando comandos para realizar funciones específicas a la base de datos.
Mi pregunta es si tengo un comando, por ejemplo unAddNewCustomerCommand
, que a su vez realiza otra llamada a otro servicio (es decir, envía un mensaje de texto), desde un punto de vista de diseño, ¿es esto aceptable o debería hacerse a un nivel superior y, de ser así, cuál es la mejor manera de hacerlo?
El código de ejemplo está abajo:
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);
}
}