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

        }
Example #2
0
        public void Executar()
        {
            var repositorioDeTransacoesBancarias = new TransacoesBancariasRepository();

            var deposito = new Deposito(_conta, _valor);

            repositorioDeTransacoesBancarias.Gravar(deposito);

            _conta.Creditar(_valor);
        }
        public void Executar()
        {
            var repositorioDeTransacoesBancarias = new TransacoesBancariasRepository();

            var deposito = new Deposito(_conta, _valor);

            repositorioDeTransacoesBancarias.Gravar(deposito);

            _conta.Creditar(_valor);
        }
        private void Sacar()
        {

            var repositoryTransacoesBancarias = new TransacoesBancariasRepository();

            var saque = new Saque(_conta, _valor);

            repositoryTransacoesBancarias.Gravar(saque);

            _conta.Debitar(_valor);
            
        }
Example #5
0
        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);
        }