public RegistrarEventoCommand(string nome, string descricao, string descricaoCurta, DateTime dataInicio, DateTime dataFim,
                               bool gratuito, decimal valor, bool online, string nomeEmpresa, Guid organizadorId,
                               Guid categoriaId, IncluirEnderecoCommand endereco)
 {
     Nome           = nome;
     Descricao      = descricao;
     DescricaoCurta = descricaoCurta;
     DataInicio     = dataInicio;
     Valor          = valor;
     Gratuito       = gratuito;
     Online         = online;
     NomeEmpresa    = nomeEmpresa;
     OrganizadorId  = organizadorId;
     CategoriaId    = categoriaId;
     Endereco       = endereco;
 }
        public void Handle(IncluirEnderecoCommand message)
        {
            var endereco = new Endereco(message.Id, message.Logradouro, message.Numero, message.Bairro, message.CEP, message.Complemento, message.Cidade, message.Estado, message.EventoId.Value);

            if (!endereco.EhValido())
            {
                NotificarValidacoesErro(endereco.ValidationResult);
                return;
            }

            _eventoRepository.AdicionarEndereco(endereco);
            if (Commit())
            {
                _bus.RaiseEvent(new EnderecoAdicionadoEvent(endereco.Id, endereco.Logradouro, endereco.Numero, endereco.Bairro, endereco.CEP, endereco.Complemento, endereco.Cidade, endereco.Estado, endereco.EventoId.Value));
            }
        }