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