Example #1
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");
                }
            }
        }
Example #2
0
        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);
        }