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

        }
示例#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);
        }
        public List<TransacoesBancarias> ObterExtratoMensal(ContaCorrente conta, int mes, int ano)
        {
            
            var repositorioTransacoesBancarias = new TransacoesBancariasRepository();

            //se for da politica do dominio cobrar pela emissao do extrato entao 
            //devera existir uma classe extrato herdada de transacoes bancarias que
            //fara um débito na conta corrente que será emitida o extrato. Isso após recuperar os itens do extrato.

            return repositorioTransacoesBancarias.ObterListaPorMes(conta, mes, ano);

        } 
        private void Sacar()
        {

            var repositoryTransacoesBancarias = new TransacoesBancariasRepository();

            var saque = new Saque(_conta, _valor);

            repositoryTransacoesBancarias.Gravar(saque);

            _conta.Debitar(_valor);
            
        }