public void Handle(RegistrarPalestraCommand message)
        {
            var endereco = new Endereco(message.Endereco.Id, message.Endereco.Logradouro, message.Endereco.Numero, message.Endereco.Complemento, message.Endereco.Bairro, message.Endereco.CEP, message.Endereco.Cidade, message.Endereco.Estado, message.Endereco.PalestraId.Value);

            var palestra = Palestra.PalestraFactory.NovaPalestraCompleta(message.Id, message.Nome, message.DescricaoAbrev,
                                                                         message.Descricao, message.DataInicio, message.DataFim, message.Gratuito, message.Valor,
                                                                         message.Online, message.NomeEmpresa, message.OrganizadorId, endereco, message.CategoriaId);

            if (!PalestraValida(palestra))
            {
                return;
            }

            // TODO:
            // validações de negocio!

            // Persistencia
            _palestraRepository.Adicionar(palestra);

            if (Commit())
            {
                // Notificar processo concluido
                Console.WriteLine("Evento Registrado com sucesso");
                _bus.RaiseEvent(new PalestraRegistradaEvent(palestra.Id, palestra.Nome, palestra.DataInicio, palestra.DataFim, palestra.Gratuito, palestra.Valor, palestra.Online, palestra.NomeEmpresa));
            }
        }