Esempio n. 1
0
        /// <summary>
        /// Valida se a requisição de transferência está correta
        /// </summary>
        /// <param name="command"></param>
        /// <returns></returns>
        protected List <DomainValidationMessage> ValidarTransferencia(ITransferencia command)
        {
            List <DomainValidationMessage> messages = new List <DomainValidationMessage>();

            if (command.numeroContaDestino == 0)
            {
                messages.Add(new DomainValidationMessage(ValidationLevel.Error, nameof(command.numeroContaDestino), "Número da Conta Destino é obrigatorio"));
            }

            if (command.numeroContaOrigem == 0)
            {
                messages.Add(new DomainValidationMessage(ValidationLevel.Error, nameof(command.numeroContaOrigem), "Número da Conta Origem é obrigatorio"));
            }

            if (command.valorTransferencia <= 0)
            {
                messages.Add(new DomainValidationMessage(ValidationLevel.Error, nameof(command.valorTransferencia), "Valor da Transferência deve ser maior que zero"));
            }

            if (command.numeroContaDestino == command.numeroContaOrigem)
            {
                messages.Add(new DomainValidationMessage(ValidationLevel.Error, nameof(command.valorTransferencia), "Conta Origem e Conta Destino devem ser diferentes"));
            }

            return(messages);
        }
Esempio n. 2
0
        /// <summary>
        /// Evento de debito em contacorrente
        /// </summary>
        /// <param name="command"></param>
        public void DebitoContaCorrente(ITransferencia command)
        {
            var lancamento = new Lancamentos(TipoLancamento.Debito, command.valorTransferencia);

            this.AdicionarLancamento(lancamento);

            this.saldoContaCorrente -= command.valorTransferencia;
        }
Esempio n. 3
0
        /// <summary>
        /// Faz as primeiras validacoes de campos obrigatorios para realizar uma transferencia
        /// </summary>
        /// <param name="command"></param>
        public ContaCorrente(ITransferencia command)
        {
            var msgs = ValidarTransferencia(command);

            if (msgs.Count > 0)
            {
                throw new DomainValidationException(msgs);
            }
        }
Esempio n. 4
0
        // Construtor Para injetar as dependencias Deposito.
        public UnitTestTransferencia(Injecao.FixtureTransferencia fix)
        {
            // morre quando não mais utilizado
            this.transferencia   = fix.Container.Resolve <ITransferencia>();
            this.ClientePrimeiro = new PessoaFisica("Raul Santiago", "222.333.333.-90");                    // mocar mok
            this.ClienteSegundo  = new PessoaJuridica("Empresa Ago", "15.432.444/0009-90");                 // mocar mok
            this.ContaPrimeiro   = new Conta(0838, 12345678, EnumTipoConta.Corrente, this.ClientePrimeiro); // mocar mok
            this.ContaSegundo    = new Conta(9999, 09876544, EnumTipoConta.Poupanca, this.ClienteSegundo);  // mocar mok
            DateTime data = DateTime.Today;

            ContaPrimeiro.AddExtrato(new Extrato(data, -5.0m, EnumTransacao.Transferencia));
            ContaSegundo.AddExtrato(new Extrato(data, 5.0m, EnumTransacao.Transferencia));
        }
Esempio n. 5
0
 /// <summary>
 /// Inicializa uma instancia de validação dos dados de Transferencia
 /// </summary>
 /// <param name="transferencia">Instancia da entidade transferencia a ser validada</param>
 public RegraTransferencia(ITransferencia transferencia)
 {
     _transferencia = transferencia;
 }