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

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

            var palestra = _palestraRepository.ObterPorId(message.PalestraId.Value);

            palestra.TornarPresencial();

            _palestraRepository.Atualizar(palestra);
            _palestraRepository.AdicionarEndereco(endereco);

            if (Commit())
            {
                //_bus.PublicarEvento(new EnderecoEventoAdicionadoEvent(endereco.Id, endereco.Logradouro, endereco.Numero, endereco.Complemento, endereco.Bairro, endereco.CEP, endereco.Cidade, endereco.Estado, endereco.EventoId.Value));
            }
        }