public void Handle(CadastrarAgenciaCommand 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.DataDeCadastro, message.Endereco.Ativo, message.Endereco.CidadeId, message.Id); var agencia = Agencia.AgenciaFactory.NovaAgenciaCompleta(message.Id, message.NumeroDaAgencia, message.NomeDaAgencia, message.DataDeCadastro, message.Ativo, endereco, message.BancoId); if (!AgenciaValida(agencia)) { return; } // TODO: // Validações de negócio! if (!AgenciaExistente(message.NumeroDaAgencia, message.MessageType)) { return; } if (!AgenciaExistente(message.NomeDaAgencia, message.MessageType)) { return; } _agenciaRepository.Adicionar(agencia); if (Commit()) { Console.WriteLine("Evento registrado com sucesso"); _bus.RaiseEvent(new AgenciaCadastradaEvent(agencia.Id, agencia.NumeroDaAgencia, agencia.NomeDaAgencia, agencia.DataDeCadastro)); } }