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

            }
        }
Example #10
0
 public Extrato(ContaCorrente conta)
     : base(conta)
 {
 }
Example #11
0
 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);
 }
Example #15
0
 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();
 }
Example #17
0
 public Saque(ContaCorrente conta, decimal valor)
     : base(conta)
 {
     this.Valor = valor;
 }
Example #18
0
 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)
 {
 }