コード例 #1
0
        public Conta Depositar(Conta conta, Transacoes transacao)
        {
            conta.Depositar(transacao);
            if (!conta.IsValid() || !transacao.IsValid())
            {
                return(conta);
            }

            return(!conta.ValidationResult.IsValid ? conta : _contaRepository.Atualizar(conta));
        }
コード例 #2
0
        public Conta Sacar(Conta conta, Transacoes transacao)
        {
            conta.Sacar(transacao);
            if (!conta.IsValid() || !transacao.IsValid())
            {
                return(conta);
            }

            conta.ValidationResult = new SaqueEstaConsistenteValidation(_contaRepository, _transacoesRepository).Validate(transacao);


            return(!conta.ValidationResult.IsValid ? conta : _contaRepository.Atualizar(conta));
        }
コード例 #3
0
        public Transacoes Adicionar(Transacoes transacoes)
        {
            if (!transacoes.IsValid())
            {
                return(transacoes);
            }

            if (transacoes.ValidationResult.IsValid)
            {
                if (transacoes.TipoTransacao == Enuns.TipoTransacao.Saque)
                {
                    transacoes.Valor = transacoes.Valor * -1;
                }
                return(_transacoesRepository.Adicionar(transacoes));
            }

            return(transacoes);
        }