public void Sacar(decimal valor, Conta conta, BancoContext context, int type) { string solicitacao; decimal desconto; if (conta.Saldo >= valor) { try { if (type == 1) { var contaC = context.ContasCorrente.Where(b => b.Conta == conta) .FirstOrDefault(); desconto = valor * contaC.Taxa; solicitacao = DateTime.Now.ToString() + " CONTACORRENTE SAQUE- SALDO:" + conta.Saldo + " VALOR:" + valor + " DESCONTO:" + desconto; conta.Saldo = conta.Saldo - (valor + desconto); solicitacao = solicitacao + " SALDOATUAL:" + conta.Saldo; context.SaveChanges(); var newSolicitacao = new Solicitacao() { Conta = conta, Movimentacao = solicitacao }; context.Add(newSolicitacao); context.SaveChanges(); } else if (type == 2) { var contaC = context.ContasPoupanca.Where(b => b.Conta == conta) .FirstOrDefault(); solicitacao = DateTime.Now.ToString() + " CONTAPOUPANCA SAQUE- SALDO:" + conta.Saldo + " VALOR:" + valor; conta.Saldo = conta.Saldo - valor; solicitacao = solicitacao + " SALDOATUAL:" + conta.Saldo; context.SaveChanges(); var newSolicitacao = new Solicitacao() { Conta = conta, Movimentacao = solicitacao }; context.Add(newSolicitacao); context.SaveChanges(); } Console.WriteLine("Operação Realizada com sucesso!"); Console.WriteLine(" "); } catch (Exception error) { error.ToString(); Console.WriteLine("Não foi possivel efetuar esta ação"); Console.WriteLine(" "); } } else { Console.WriteLine("A conta não possui saldo suficiente"); Console.WriteLine(" "); } }
static void Main(string[] args) { var contexto = new Contexto(); if (!contexto.Bancos.Any()) { var banco = new Banco() { Nome = "Bradesco" }; contexto.Add(banco); contexto.SaveChanges(); if (!contexto.Agencias.Any()) { var Agencia = new Agencia() { NumeroAgencia = "0121", BancoId = banco.Id }; contexto.Add(Agencia); contexto.SaveChanges(); } } foreach (Agencia a in contexto.Agencias) { Console.WriteLine("bancoId: " + a.BancoId); } while (true) { Console.WriteLine("Digite a opcao desejada."); Console.WriteLine("1 - Listar agencias"); Console.WriteLine("2 - Agencia"); Console.WriteLine("3 - Conta"); Console.WriteLine("0 - Sair"); int op = int.Parse(Console.ReadLine()); Console.WriteLine(op); if (op == 0) { break; } if (op == 1) { List <Banco> bancos = contexto.Bancos.ToList(); foreach (Agencia a in bancos[0].Agencias) { Console.WriteLine("Identificador: " + a.NumeroAgencia); } } else if (op == 2) { Console.WriteLine("Numero da agencia."); string agencia = Console.ReadLine(); Agencia a = null; List <Banco> bancos = contexto.Bancos.ToList(); foreach (Agencia ag in bancos[0].Agencias) { if (ag.NumeroAgencia.Equals(agencia)) { a = ag; break; } } if (a == null) { Console.WriteLine("Agencia nao encontrada."); continue; } Console.WriteLine("Agencia " + a.NumeroAgencia); Console.WriteLine("1 - Abrir conta"); Console.WriteLine("2 - Fechar conta"); Console.WriteLine("3 - Consultar conta"); Console.WriteLine("0 - Voltar"); op = int.Parse(Console.ReadLine()); if (op == 1) { Console.WriteLine("Digite 1. Conta Corrente 2.Conta Poupanca "); op = int.Parse(Console.ReadLine()); if (op == 1) { Console.WriteLine("Digite o nome do titular "); string nome = Console.ReadLine(); ContaCorrente cc = new ContaCorrente(); cc.Titular = nome; contexto.Add(cc); a.Contas.Add(cc); contexto.SaveChanges(); continue; } else if (op == 2) { Console.WriteLine("Digite o nome do titular "); string nome = Console.ReadLine(); ContaPoupanca cp = new ContaPoupanca(); cp.Titular = nome; Console.WriteLine("Digite sua data de aniversario "); string niver = Console.ReadLine(); cp.DataAniversario = DateTime.ParseExact(niver, "dd/MM/yyyy", CultureInfo.InvariantCulture); contexto.Add(cp); a.Contas.Add(cp); contexto.SaveChanges(); continue; } } else if (op == 2) { Console.WriteLine("Digite o nome do titular."); string nome = Console.ReadLine(); Console.WriteLine("Digite 1. Conta Corrente 2.Conta Poupanca "); op = int.Parse(Console.ReadLine()); if (op == 1) { foreach (ContaCorrente cc in contexto.ContasCorrentes) { if (cc.Titular.Equals(nome)) { contexto.ContasCorrentes.Remove(cc); a.Contas.Remove(cc); contexto.SaveChanges(); break; } } } else if (op == 2) { foreach (ContaPoupanca cp in contexto.ContasPoupancas) { if (cp.Titular.Equals(nome)) { contexto.ContasPoupancas.Remove(cp); a.Contas.Remove(cp); contexto.SaveChanges(); break; } } } } else if (op == 3) { Console.WriteLine("Digite 1. Conta Corrente 2.Conta Poupanca "); op = int.Parse(Console.ReadLine()); if (op == 1) { Console.WriteLine("Digite o nome do titular "); string nome = Console.ReadLine(); foreach (ContaCorrente cc in contexto.ContasCorrentes) { if (cc.Titular.Equals(nome)) { Console.WriteLine("Identificador: " + cc.Id + " | Saldo: " + cc.Saldo); break; } } continue; } else if (op == 2) { Console.WriteLine("Digite o nome do titular "); string nome = Console.ReadLine(); foreach (ContaPoupanca cp in contexto.ContasPoupancas) { if (cp.Titular.Equals(nome)) { Console.WriteLine("Identificador: " + cp.Id + " | Saldo: " + cp.Saldo); break; } } continue; } } } else if (op == 3) { Console.WriteLine("Conta."); Console.WriteLine("1 - Solicitar"); Console.WriteLine("0 - Voltar"); op = int.Parse(Console.ReadLine()); if (op == 1) { Solicitacao s = new Solicitacao(); Console.WriteLine("digite Cpf do cliente"); string CpfCliente = Console.ReadLine(); Console.WriteLine("digite agencia do cliente"); string NumeroAgencia = Console.ReadLine(); Console.WriteLine("digite o tipo de transacao: (1- Deposito 2 - Saque) "); int opc = int.Parse(Console.ReadLine()); List <Agencia> agencias = contexto.Agencias.ToList(); Agencia a = null; foreach (Agencia ag in agencias) { if (ag.NumeroAgencia.Equals(NumeroAgencia)) { a = ag; break; } } if (a == null) { Console.WriteLine("Agencia nao encontrada"); continue; } if (opc == 1) { s.TipoT = TIPO_DEPOSITO; } else if (opc == 2) { s.TipoT = TIPO_SAQUE; } if (s.TipoT.Equals(TIPO_DEPOSITO)) { Console.WriteLine("digite a conta"); string conta = Console.ReadLine(); Console.WriteLine("Digite 1 - Conta Corrente 2 - Conta Poupanca "); opc = int.Parse(Console.ReadLine()); if (opc == 1) { ContaCorrente c = null; foreach (ContaCorrente cc in a.Contas) { if (cc.Titular.Equals(conta)) { c = cc; break; } } if (c == null) { Console.WriteLine("Conta nao encontrada"); break; } Console.WriteLine("Valor a ser Depositado"); decimal valor = decimal.Parse(Console.ReadLine()); decimal taxa = valor * c.Taxa; c.Saldo = c.Saldo + valor - taxa; Console.WriteLine("Valor atual: " + c.Saldo); contexto.SaveChanges(); } else if (opc == 2) { ContaPoupanca p = null; foreach (ContaPoupanca cp in a.Contas) { if (cp.Titular.Equals(conta)) { p = cp; break; } } if (p == null) { Console.WriteLine("Conta nao encontrada"); break; } Console.WriteLine("Valor a ser Depositado"); decimal valor = int.Parse(Console.ReadLine()); decimal taxa = valor * p.Juros; p.Saldo = p.Saldo + valor + taxa; Console.WriteLine("Valor atual: " + p.Saldo); contexto.SaveChanges(); } } else if (s.TipoT.Equals(TIPO_SAQUE)) { Console.WriteLine("digite a conta"); string conta = Console.ReadLine(); Console.WriteLine("Digite 1 - Conta Corrente 2 - Conta Poupanca "); opc = int.Parse(Console.ReadLine()); if (opc == 1) { ContaCorrente c = null; foreach (ContaCorrente cc in a.Contas) { if (cc.Titular.Equals(conta)) { c = cc; break; } } if (c == null) { Console.WriteLine("Conta nao encontrada"); break; } Console.WriteLine("Valor a ser Sacado "); decimal valor = decimal.Parse(Console.ReadLine()); if (c.Saldo >= valor) { c.Saldo = c.Saldo - valor; Console.WriteLine("Valor atual: " + c.Saldo); contexto.SaveChanges(); } else { Console.WriteLine("Saldo insufuciente."); continue; } } else if (op == 2) { ContaPoupanca p = null; foreach (ContaPoupanca cp in a.Contas) { if (cp.Titular.Equals(conta)) { p = cp; break; } } if (p == null) { Console.WriteLine("Conta nao encontrada"); break; } Console.WriteLine("Valor a ser Sacado"); decimal valor = decimal.Parse(Console.ReadLine()); if (p.Saldo >= valor) { p.Saldo = p.Saldo - valor; Console.WriteLine("Valor atual: " + p.Saldo); contexto.SaveChanges(); } else { Console.WriteLine("Saldo insufuciente."); continue; } } } } } else if (op == 0) { continue; } } }
static void Main(string[] args) { using (var db = new StoreContext()) { db.Set <Banco>().RemoveRange(db.Bancos); Banco banco = new Banco(); db.Bancos.Add(banco); db.SaveChanges(); while (true) { menu(); int op = int.Parse(Console.ReadLine()); if (op == 1) { Agencia agencia = new Agencia(); agencia.Banco = banco; db.Agencias.Add(agencia); //add agência in banco db.SaveChanges(); banco.findAllAgencia(); } else if (op == 2) { banco.findAllAgencia(); Console.WriteLine("Informe o número da agência: "); int numAgencia = int.Parse(Console.ReadLine()); Agencia agencia = banco.findAgencia(numAgencia); if (agencia == null) { Console.WriteLine( "*************************************\n" + "**Agencia inválida! Tente novamente**\n" + "*************************************\n"); continue; } Cliente cliente = new Cliente(); Console.WriteLine("Informe o nome do cliente: "); cliente.Nome = Console.ReadLine(); Console.WriteLine("Qual tipo de conta deseja criar:"); Console.WriteLine("1 - Corrente | 2 - Poupança"); int tipoConta = int.Parse(Console.ReadLine()); if (tipoConta == 1) { db.Clientes.Add(cliente); //add cliente in base ContaCorrente cc = new ContaCorrente(cliente.Nome, agencia); var x = db.ContasCorrente.Add(cc); //add Conta Corrente in base } else if (tipoConta == 2) { db.Clientes.Add(cliente); //add cliente in base ContaPoupanca cp = new ContaPoupanca(JUROS, DateTime.Now, cliente.Nome, agencia); db.ContasPoupanca.Add(cp); //add Conta Poupança in base } } else if (op == 3) { Solicitacao solicitacao = new Solicitacao(); solicitacao.realizarSolicitacao(banco); } else if (op == 4) { return; } else { Console.WriteLine( "***********************************\n" + "**Opção inválida! Tente novamente**\n" + "***********************************\n"); } db.SaveChanges(); } //Fim do while } } //Fim da main