public void realizarSolicitacao(Banco banco) { using (var db = new StoreContext()) { banco.findAllAgencia(); Console.WriteLine("Informe o Id da agência: "); Agencia agencia = banco.findAgencia(int.Parse(Console.ReadLine())); if (agencia == null) { Console.WriteLine( "**********************\n" + "**Agência não existe**\n" + "**********************\n"); return; } Console.WriteLine( "Informe o tipo da conta:\n" + "1 - Corrente | 2 - Poupança"); int tipoConta = int.Parse(Console.ReadLine()); if (tipoConta == 1) { agencia.findAllCCorrente(); Console.WriteLine("Informe o numero da conta: "); int numConta = int.Parse(Console.ReadLine()); try { var cc = db.Set <ContaCorrente>().First(p => p.Id == numConta); //Update Conta Corrente in banco Console.WriteLine( "1 - Consultar Saldo\n" + "2 - Sacar\n" + "3 - Depositar\n" + "4 - Remover Conta"); int op = int.Parse(Console.ReadLine()); if (op == 1) { Console.WriteLine( "Conta: " + cc.Id + "\nTitular: " + cc.Titular + "\nSaldo: R$ " + cc.Saldo); } else if (op == 2) { Console.WriteLine("Informe o valor para saque: "); double valor = Double.Parse(Console.ReadLine()); if (valor <= cc.Saldo) { cc.Saldo -= valor; } else { Console.WriteLine( "**********************\n" + "**Saldo insuficiente**\n" + "**********************\n"); } } else if (op == 3) { Console.WriteLine("Informe o valor para deposito: "); double valor = Double.Parse(Console.ReadLine()); cc.Saldo += valor; } else if (op == 4) { Console.WriteLine( "******************************************\n" + "**Realmente deseja remover a conta(s/n)?**\n" + "******************************************\n"); string ex = Console.ReadLine(); if (ex == "s") { db.Remove(cc); Console.WriteLine("Conta removida com sucesso!"); } else { return; } } } catch { Console.WriteLine( "******************\n" + "**Conta inválida**\n" + "******************\n"); } } else if (tipoConta == 2) { agencia.findAllCPoupanca(); Console.WriteLine("Informe o numero da conta: "); int numConta = int.Parse(Console.ReadLine()); try { var cp = db.Set <ContaPoupanca>().First(p => p.Id == numConta); //Update Conta Poupança in banco Console.WriteLine( "1 - Consultar Saldo\n" + "2 - Sacar\n" + "3 - Depositar\n" + "4 - Remover Conta"); int op = int.Parse(Console.ReadLine()); if (op == 1) { Console.WriteLine( "Conta = " + cp.Id + "\nTitular = " + cp.Titular + "\nSeu saldo é = R$ " + cp.Saldo); } else if (op == 2) { Console.WriteLine("Informe o valor para saque: "); double valor = Double.Parse(Console.ReadLine()); if (valor <= cp.Saldo) { cp.Saldo -= valor; } else { Console.WriteLine( "**********************\n" + "**Saldo insuficiente**\n" + "**********************\n"); } } else if (op == 3) { Console.WriteLine("Informe o valor para deposito: "); double valor = Double.Parse(Console.ReadLine()); cp.Saldo += valor; } else if (op == 4) { Console.WriteLine( "******************************************\n" + "**Realmente deseja remover a conta(s/n)?**\n" + "******************************************\n"); string ex = Console.ReadLine(); if (ex == "s") { db.Remove(cp); Console.WriteLine("Conta removida com sucesso!"); } else { return; } } } catch { Console.WriteLine( "******************\n" + "**Conta inválida**\n" + "******************\n"); } } db.SaveChanges(); //Save banco Console.WriteLine(""); } } //Fim do método
static void Main(string[] args) { var contexto = new Contexto(); if (!contexto.Bancos.Any()) { var banco = new Banco() { Nome = "Banco Itau" }; 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 2- Agencia 3- Conta 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.Tente novamente!"); continue; } Console.WriteLine("Agencia " + a.NumeroAgencia); Console.WriteLine("1- Abrir conta 2- Fechar conta 3- Consultar conta 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 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.Tente novamente!"); 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. Tente novamente!"); 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. Tente novamente!"); 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. Tente novamente!"); 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. Tente novamente!"); 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 context = new StoreContext()) { context.Set <Agencia>().RemoveRange(context.Agencias); context.Set <Banco>().RemoveRange(context.Bancos); context.Set <Cliente>().RemoveRange(context.Clientes); context.Set <ClienteSolicitacao>().RemoveRange(context.ClienteSolicitacoes); context.Set <Conta>().RemoveRange(context.Contas); context.Set <ContaCorrente>().RemoveRange(context.ContasCorrente); context.Set <ContaPoupanca>().RemoveRange(context.ContasPoupanca); context.Set <Solicitacao>().RemoveRange(context.Solicitacoes); #region Objetos var bancoDoBrasil = new Banco() { Nome = "Banco do Brasil" }; var bancoCaixa = new Banco() { Nome = "Caixa Econômica" }; context.Add(bancoDoBrasil); context.Add(bancoCaixa); context.SaveChanges(); var agenciaBancoBrasil = new Agencia() { Numero = 1001, BancoId = bancoDoBrasil.Id }; var agenciaCaixa = new Agencia() { Numero = 1002, BancoId = bancoCaixa.Id }; context.Add(agenciaBancoBrasil); context.Add(agenciaCaixa); context.SaveChanges(); #endregion while (true) { Console.WriteLine("Escolha uma opção:"); Console.WriteLine("1 - Adicionar cliente"); Console.WriteLine("2 - Exibir clientes cadastrados"); Console.WriteLine("3 - Atualizar nome de um cliente"); Console.WriteLine("4 - Excluir um cliente"); Console.WriteLine("0 - Sair"); var opcao = Convert.ToInt16(Console.ReadLine()); if (opcao == 1) { Console.WriteLine("Informe o nome do cliente:"); var nome = Console.ReadLine(); var cliente = new Cliente() { Nome = nome }; context.Add(cliente); context.SaveChanges(); } else if (opcao == 2) { var clientes = context.Set <Cliente>(); foreach (var c in clientes) { Console.WriteLine($"Cliente:\t{c.Nome}"); } } else if (opcao == 3) { Console.WriteLine("Informe o nome atual do cliente:"); var nomeVelho = Console.ReadLine(); Console.WriteLine("Informe o novo nome do cliente:"); var nomeNovo = Console.ReadLine(); var busca = context.Set <Cliente>().First(c => c.Nome.Equals(nomeVelho)); busca.Nome = nomeNovo; context.SaveChanges(); } else if (opcao == 4) { Console.WriteLine("Informe o nome atual do cliente:"); var nome = Console.ReadLine(); var busca = context.Set <Cliente>().First(c => c.Nome == nome); context.Remove(busca); context.SaveChanges(); } else if (opcao == 0) { return; } else { Console.WriteLine("Opção inválida, digite novamente!"); } } } }