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