public void DesbloqueioJudicial(string _tipo, ContaCorrente contaOrigem) { if (_tipo == OrdemJudicial.TipoOrdem.Desbloquear.ToString()) { contaOrigem.Status = ContaCorrente.StatusConta.Ativa.ToString(); } }
public Transferencia(ContaCorrente _ContaOrigem, ContaCorrente _ContaDestino, decimal _valor) : base(_ContaOrigem) { ContaOrigem = _ContaOrigem; ContaDestino = _ContaDestino; valor = _valor; }
public void testar_saque() { var conta = new ContaCorrente(); conta.Credita(1000); conta.Numero = 123; TransacaoBancaria saque = new Saque(conta, 500); saque.Executa(); Comprovante comprovante = saque.Comprovante; RepositorioTransacaoBancaria.LimparRepositorio(); RepositorioTransacaoBancaria.Adicionar(saque); Assert.Contains(saque, RepositorioTransacaoBancaria.Listar()); Saque recuperado = RepositorioTransacaoBancaria.Listar().Cast<Saque>().FirstOrDefault(); List<Saque> saques = RepositorioTransacaoBancaria.Listar() .Where(t => t.GetType().Name == typeof(Saque).Name) .Cast<Saque>() .ToList(); Assert.AreEqual(saque, recuperado); }
public void Deposito(ContaCorrente contaDestino, decimal valor) { if (contaDestino.Status.Equals(ContaCorrente.StatusConta.Ativa.ToString())) { TransacaoBancaria transacao = new Deposito(contaDestino, valor); ValidaSaldo(contaDestino, valor, "Deposito"); transacao.Executa(); } else { throw new Exception("Conta não está ativa"); } }
public void Saque(ContaCorrente contaOrigem, decimal valor) { if (contaOrigem.Status.Equals(ContaCorrente.StatusConta.Ativa.ToString())) { TransacaoBancaria transacao = new Saque(contaOrigem, valor); ValidaSaldo(contaOrigem, valor, "Saque"); transacao.Executa(); } else { throw new Exception("Conta não está ativa"); } }
public void Transferencia(ContaCorrente contaOrigem, ContaCorrente contaDestino, decimal valor) { if (contaOrigem.Status.Equals(ContaCorrente.StatusConta.Ativa.ToString()) && contaDestino.Status.Equals(ContaCorrente.StatusConta.Ativa.ToString())) { TransacaoBancaria transacao = new Transferencia(contaOrigem, contaDestino, valor); ValidaSaldo(contaOrigem, valor, "Transferencia"); transacao.Executa(); } else { throw new Exception("Conta não está ativa"); } }
public void testar_transferencia() { var contaorigem = new ContaCorrente(); var contadestino = new ContaCorrente(); contaorigem.Agencia = new Agencia(); contaorigem.Agencia.Banco = new Banco(); contaorigem.Credita(1000); contaorigem.Numero = 568465; contaorigem.Status = "Ativa"; contaorigem.DataAbertura = System.DateTime.Now.Date; contaorigem.Agencia.Numero = 1; contaorigem.Agencia.Banco.Numero = 1; contadestino.Agencia = new Agencia(); contadestino.Agencia.Banco = new Banco(); contadestino.Credita(1000); contadestino.Numero = 999546; contadestino.Status = "Ativa"; contadestino.DataAbertura = System.DateTime.Now.Date; contadestino.Agencia.Numero = 1; contadestino.Agencia.Banco.Numero = 1; TransacaoBancaria transferencia = new Transferencia(contaorigem, contadestino, 500); transferencia.Executa(); Comprovante comprovante = transferencia.Comprovante; RepositorioTransacaoBancaria.LimparRepositorio(); RepositorioTransacaoBancaria.Adicionar(transferencia); Assert.Contains(transferencia, RepositorioTransacaoBancaria.Listar()); Transferencia recuperado = RepositorioTransacaoBancaria.Listar().Cast<Transferencia>().FirstOrDefault(); List<Transferencia> transferencias = RepositorioTransacaoBancaria.Listar() .Where(t => t.GetType().Name == typeof(Transferencia).Name) .Cast<Transferencia>() .ToList(); Assert.AreEqual(transferencia, recuperado); }
public void testar_deposito() { var conta = new ContaCorrente(); conta.Numero = 123; conta.Credita(1000); var deposito = new Deposito(conta, 500); deposito.Executa(); var comprovante = deposito.Comprovante; RepositorioTransacaoBancaria.Adicionar(deposito); Assert.Contains(deposito, RepositorioTransacaoBancaria.Listar()); var recuperado = RepositorioTransacaoBancaria.Listar().Cast<Deposito>().FirstOrDefault(); List<Deposito> depositos = RepositorioTransacaoBancaria.Listar() .Where(t => t.GetType().Name == typeof(Deposito).Name) .Cast<Deposito>() .ToList(); Assert.AreEqual(deposito, recuperado); }
public void ValidaSaldo(ContaCorrente contaorigem, decimal valor, string operacao) { switch (operacao) { case "Saque": if (valor < 0) throw new ArgumentException("Valor a debitar não pode ser negativo!"); if (contaorigem.Saldo - valor < 0) throw new InvalidOperationException("Saldo insuficiente!"); break; case "Transferencia": if (valor < 0) throw new ArgumentException("Valor a tranferir não pode ser negativo!"); if (contaorigem.Saldo - valor < 0) throw new InvalidOperationException("Saldo da conta de origem número: " + contaorigem.Numero + " do Cliente " + contaorigem.Cliente.Nome + " é insuficiente."); break; case "Deposito": if (valor < 0) throw new ArgumentException("Valor a creditar não pode ser negativo!"); break; case "Encerramento": if(contaorigem.Saldo > 0) throw new InvalidOperationException("Saldo da conta de origem número: " + contaorigem.Numero + " do Cliente " + contaorigem.Cliente.Nome + " é maior que zero. Retire todo o saldo da conta e repita operação."); break; default: throw new Exception("Opcao invalida"); } }
public Extrato(ContaCorrente conta) : base(conta) { }
public Deposito(ContaCorrente conta, decimal valor) : base(conta) { this.Valor = valor; }
public TransacaoBancaria(ContaCorrente contaCorrente) { Conta = contaCorrente; }
public void EncerraConta(ContaCorrente contaOrigem) { ValidaSaldo(contaOrigem, 0, "Encerramento"); contaOrigem.Status = ContaCorrente.StatusConta.Encerrada.ToString(); }
public static void Adicionar(ContaCorrente conta) { contas.Add(conta); }
public Extrato(ContaCorrente conta) : base(conta) { }
public void BloqueioJudicial(string _tipo, ContaCorrente contaOrigem) { if (_tipo == OrdemJudicial.TipoOrdem.Bloquear.ToString()) contaOrigem.Status = ContaCorrente.StatusConta.BloqueadaJudicialmente.ToString(); }
public Saque(ContaCorrente conta, decimal valor) : base(conta) { this.Valor = valor; }
public virtual decimal Tranfere(ContaCorrente ContaOrigem, ContaCorrente ContaDestino, decimal valor) { ContaOrigem.Saldo -= valor; ContaDestino.Saldo += valor; return ContaOrigem.Saldo -= valor; }
public TransacaoMonetaria(ContaCorrente conta) : base(conta) { }