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