Chamando Comandos de Outro Comando Método Handle ()

Oi eu estou usando oInjetor Simples DI biblioteca e tem vindo a seguir material realmente interessante sobre um modelo de arquitetura projetado em torno do padrão de comando:

Enquanto isso ... no lado do comando da minha arquiteturaEnquanto isso ... no lado da consulta da minha arquitetura

O contêiner gerenciará a vida útil doUnitOfWorke estou usando comandos para executar funções específicas no banco de dados.

Minha pergunta é se eu tenho um comando, por exemplo, umAddNewCustomerCommandque, por sua vez, realiza outra chamada para outro serviço (ou seja, envia uma mensagem de texto), do ponto de vista do design, isso é aceitável ou deve ser feito em um nível mais alto e, em caso afirmativo, qual é a melhor maneira de fazer isso?

Exemplo de código está abaixo:

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);
     }
}

questionAnswers(1)

yourAnswerToTheQuestion