public void Executar()
        {

            if ((_contaSaque.Saldo >= _valor) && 
                (_contaSaque.Situacao != ContaCorrenteEstado.Bloqueada) &&
                (_contaDeposito.Situacao != ContaCorrenteEstado.Bloqueada))
            {
                var repositorioDeTransacoesBancarias = new TransacoesBancariasRepository();

                Saque saque = new Saque(_contaSaque, _valor);
                
                _contaSaque.Debitar(_valor);

                Deposito deposito = new Deposito(_contaDeposito, _valor);

                repositorioDeTransacoesBancarias.Gravar(saque);

                repositorioDeTransacoesBancarias.Gravar(deposito);
                _contaDeposito.Creditar(_valor);

            }
            else
            {
                if ( _contaSaque.Saldo <= 0 )
                     throw new Exception("Saldo insuficiente para a transferência");
                if ( _contaSaque.Situacao == ContaCorrenteEstado.Bloqueada )
                     throw new Exception("Conta Corrente bloqueada judicialmente, transferência não será possível");
                if ( _contaDeposito.Situacao == ContaCorrenteEstado.Bloqueada )
                     throw new Exception("Conta do favorecido bloqueada judicialmente, transferência não será possível");
            }

        }
Exemple #2
0
        public void Executar()
        {
            if ((_contaSaque.Saldo >= _valor) &&
                (_contaSaque.Situacao != ContaCorrenteEstado.Bloqueada) &&
                (_contaDeposito.Situacao != ContaCorrenteEstado.Bloqueada))
            {
                var repositorioDeTransacoesBancarias = new TransacoesBancariasRepository();

                Saque saque = new Saque(_contaSaque, _valor);

                _contaSaque.Debitar(_valor);

                Deposito deposito = new Deposito(_contaDeposito, _valor);

                repositorioDeTransacoesBancarias.Gravar(saque);

                repositorioDeTransacoesBancarias.Gravar(deposito);
                _contaDeposito.Creditar(_valor);
            }
            else
            {
                if (_contaSaque.Saldo <= 0)
                {
                    throw new Exception("Saldo insuficiente para a transferência");
                }
                if (_contaSaque.Situacao == ContaCorrenteEstado.Bloqueada)
                {
                    throw new Exception("Conta Corrente bloqueada judicialmente, transferência não será possível");
                }
                if (_contaDeposito.Situacao == ContaCorrenteEstado.Bloqueada)
                {
                    throw new Exception("Conta do favorecido bloqueada judicialmente, transferência não será possível");
                }
            }
        }
        public void Teste_Gravar()
        {
            var ccE = new ContaCorrenteEspecial();
            var tra1 = new Deposito(ccE, 100);

            RepositorioOperacoes.Gravar(tra1);

            var operacoes = RepositorioOperacoes.ObterTodos();

            var expected = 5;
            var actual = operacoes.Count;

            Assert.AreEqual(expected, actual);
        }