public static Conta VerificarContaPoupanca(int opt, BancoContext context)
        {
            Conta  conta = new Conta();
            string nome;
            string cpf;

            Console.WriteLine("Digite o nome do Titular da conta");
            nome = Console.ReadLine();
            Console.WriteLine("Digite o Cpf da conta");
            cpf = Console.ReadLine();
            try{
                var cliente = context.Clientes.Where(b => b.Cpf == cpf && b.Nome == nome)
                              .FirstOrDefault();
                conta = context.Contas.Where(b => b.Titular == nome && b.Cliente == cliente)
                        .FirstOrDefault();
                var contaPoupanca = context.ContasPoupanca.Where(b => b.Conta == conta)
                                    .FirstOrDefault();

                if (contaPoupanca == null)
                {
                    Console.WriteLine("Conta não encontrada");
                    Console.WriteLine(" ");
                    return(null);
                }
            }catch (Exception e)
            {
                e.ToString();
                Console.WriteLine("Conta não encontrada");
                Console.WriteLine(" ");
                return(null);
            }
            return(conta);
        }
        static void Main(string[] args)
        {
            var context = new BancoContext();

            InitOperator(context);
            int menu = 0;
            int opt  = 1;

            for (; opt != 0;)
            {
                if (menu == 0)
                {
                    menu = MenuPrimario(opt);
                }
                opt = menu;
                if (menu == 1)
                {
                    menu = MenuContaSelec(opt, context);
                }
                else if (menu == 2)
                {
                    menu = CriarConta(context);
                }
                if (opt == 100)
                {
                    menu = 0;
                }
            }
            Console.WriteLine(" ");
            Console.WriteLine("Volte sempre!");
        }
        static void MenuContaPoupanca(int opt, BancoContext context, Conta conta)
        {
            Console.WriteLine(" ");
            Console.WriteLine("Bem Vindo " + conta.Titular);
            for (; opt != 0;)
            {
                Console.WriteLine(" ");
                Console.WriteLine("-------Conta Poupanca-------");
                Console.WriteLine("------------Menu------------");
                Console.WriteLine("Sacar                 - 1");
                Console.WriteLine("Depositar             - 2");
                Console.WriteLine("Olhar Saldo           - 3");
                Console.WriteLine("Atualizar dados       - 4");
                Console.WriteLine("Excluir esta conta    - 5");
                Console.WriteLine("Voltar                - 6");
                Console.WriteLine(" ");
                try
                {
                    opt = Int32.Parse(Console.ReadLine());
                }catch (Exception e)
                {
                    e.ToString();
                    opt = 100;
                }
                Console.WriteLine(" ");
                switch (opt)
                {
                case 1:
                    sacarPoupanca(conta, context);
                    break;

                case 2:
                    depositarPoupanca(conta, context);
                    break;

                case 3:
                    OlharSaldo(conta);
                    break;

                case 4:
                    AtualizarDados(conta, context, 2);
                    break;

                case 5:
                    opt = deletarConta(context, conta, 2);
                    break;

                case 6:
                    opt = 0;
                    break;

                default:
                    Console.WriteLine("Opção Invalida");
                    Console.WriteLine(" ");
                    opt = 1;
                    break;
                }
            }
        }
Beispiel #4
0
        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 depositarPoupanca(Conta conta, BancoContext context)
        {
            Console.WriteLine("Digite a quantidade a ser Depositada");
            decimal deposito;

            try
            {
                deposito = Decimal.Parse(Console.ReadLine());
                conta.Depositar(deposito, conta, context, 2);
            }catch (Exception e)
            {
                e.ToString();
                Console.WriteLine("Valor Invalido");
            }
        }
        static void sacarPoupanca(Conta conta, BancoContext context)
        {
            Console.WriteLine("Digite a quantidade a ser Sacada");
            decimal saque;

            try
            {
                saque = Decimal.Parse(Console.ReadLine());
                conta.Sacar(saque, conta, context, 2);
            }catch (Exception e)
            {
                e.ToString();
                Console.WriteLine("Valor Invalido");
            }
        }
        static void AtualizarDados(Conta conta, BancoContext context, int opt)
        {
            Console.WriteLine("digite novamente seu nome e cpf");
            Console.WriteLine("Digite o nome do Titular da conta");
            string nome = Console.ReadLine();

            Console.WriteLine("Digite o Cpf da conta");
            string cpf = Console.ReadLine();

            if (opt == 1)
            {
                try{
                    var clienteC = context.Clientes.Where(b => b.Cpf == cpf && b.Nome == nome)
                                   .FirstOrDefault();
                    var contaCorrente = context.ContasCorrente.Where(b => b.Conta == conta)
                                        .FirstOrDefault();
                    clienteC.atualizar(conta, clienteC, context);
                }catch (Exception e)
                {
                    e.ToString();
                    Console.WriteLine("Credenciais incorretas");
                    Console.WriteLine(" ");
                }
            }
            else if (opt == 2)
            {
                try{
                    var clienteP = context.Clientes.Where(b => b.Cpf == cpf && b.Nome == nome)
                                   .FirstOrDefault();
                    var contaPoupanca = context.ContasPoupanca.Where(b => b.Conta == conta)
                                        .FirstOrDefault();
                    clienteP.atualizar(conta, clienteP, context);
                }catch (Exception e)
                {
                    e.ToString();
                    Console.WriteLine("Credenciais incorretas");
                    Console.WriteLine(" ");
                }
            }
        }
        public static void InitOperator(BancoContext context)
        {
            if (!context.Bancos.Any())
            {
                // Console.WriteLine("aqui");
                var newBanco = new Banco()
                {
                    Nome = "Banco do Brasil"
                };
                context.Add(newBanco);
                context.SaveChanges();

                if (!context.Agencias.Any())
                {
                    var newAgencia = new Agencia()
                    {
                        Numero = "0121", Banco = newBanco
                    };
                    context.Add(newAgencia);
                    context.SaveChanges();
                }
            }
        }
        public void atualizar(Conta conta, Cliente cliente, BancoContext context)
        {
            var clienteAtualizado = context.Set <Cliente>().First(p => p.Id == cliente.Id);
            var contaAtualizada   = context.Set <Conta>().First(p => p.Id == conta.Id);
            int opt = 1;

            for (; opt != 0;)
            {
                Console.WriteLine("--------Atualizar--------");
                Console.WriteLine("Nome                   -1");
                Console.WriteLine("Idade                  -2");
                Console.WriteLine("Cpf                    -3");
                Console.WriteLine("Sair                   -0");
                try
                {
                    opt = Int32.Parse(Console.ReadLine());
                }catch (Exception e)
                {
                    e.ToString();
                    opt = 100;
                }
                switch (opt)
                {
                case 1:
                    Console.WriteLine("Digite o novo nome");
                    string nome = Console.ReadLine();
                    clienteAtualizado.Nome = nome;
                    context.SaveChanges();
                    contaAtualizada.Titular = nome;
                    context.SaveChanges();
                    break;

                case 2:
                    Console.WriteLine("Digite a nova idade");
                    int idade;
                    try
                    {
                        idade = Int32.Parse(Console.ReadLine());
                        clienteAtualizado.Idade = idade;
                        context.SaveChanges();
                    }catch (Exception e)
                    {
                        e.ToString();
                        Console.WriteLine("Idade Invalida");
                    }
                    break;

                case 3:
                    Console.WriteLine("Digite o novo CPF");
                    string cpf      = Console.ReadLine();
                    var    checkCpf = context.Clientes.Where(b => b.Cpf == cpf)
                                      .FirstOrDefault();

                    if (checkCpf != null)
                    {
                        Console.WriteLine("CPF ja cadastrado em outra conta");
                        Console.WriteLine(" ");
                        break;
                    }
                    clienteAtualizado.Cpf = cpf;
                    context.SaveChanges();

                    break;

                case 0:
                    break;

                default:
                    Console.WriteLine("Opção Invalida");
                    Console.WriteLine(" ");
                    break;
                }
            }
        }
        static int MenuContaSelec(int opt, BancoContext context)
        {
            Conta conta  = new Conta();
            bool  access = false;

            for (; opt != 0;)
            {
                Console.WriteLine(" ");
                Console.WriteLine("------------Menu------------");
                Console.WriteLine("Conta Corrente           - 1");
                Console.WriteLine("Conta Poupanca           - 2");
                Console.WriteLine("Sair                     - 0");
                Console.WriteLine(" ");
                try
                {
                    opt = Int32.Parse(Console.ReadLine());
                }catch (Exception e)
                {
                    e.ToString();
                    opt = 100;
                }
                switch (opt)
                {
                case 1:
                    Console.WriteLine(" ");
                    conta = VerificarContaCorrente(opt, context);
                    if (conta == null)
                    {
                        access = false;
                    }
                    else if (conta != null)
                    {
                        access = true;
                    }
                    if (access == true)
                    {
                        MenuContaCorrente(opt, context, conta);
                    }
                    break;

                case 2:
                    Console.WriteLine(" ");
                    conta = VerificarContaPoupanca(opt, context);
                    if (conta == null)
                    {
                        access = false;
                    }
                    else if (conta != null)
                    {
                        access = true;
                    }
                    if (access == true)
                    {
                        MenuContaPoupanca(opt, context, conta);
                    }
                    break;

                case 0: break;

                default:
                    Console.WriteLine("Opção Invalida");
                    Console.WriteLine(" ");
                    break;
                }
            }

            return(opt);
        }
        static int deletarConta(BancoContext context, Conta conta, int opt)
        {
            Cliente       cliente = new Cliente();
            ContaCorrente contaC  = new ContaCorrente();
            ContaPoupanca contaP  = new ContaPoupanca();
            int           option  = 0;

            Console.WriteLine("digite novamente seu nome e cpf");
            Console.WriteLine("Digite o nome do Titular da conta");
            string nome = Console.ReadLine();

            Console.WriteLine("Digite o Cpf da conta");
            string cpf = Console.ReadLine();

            try{
                if (opt == 1)
                {
                    cliente = context.Set <Cliente>().Where(b => b.Cpf == cpf && b.Nome == nome)
                              .FirstOrDefault();
                    contaC = context.Set <ContaCorrente>().Where(b => b.Conta == conta)
                             .FirstOrDefault();
                }
                else if (opt == 2)
                {
                    cliente = context.Set <Cliente>().Where(b => b.Cpf == cpf && b.Nome == nome)
                              .FirstOrDefault();
                    contaP = context.Set <ContaPoupanca>().Where(b => b.Conta == conta)
                             .FirstOrDefault();
                }
                for (; option != 2;)
                {
                    Console.WriteLine("Deseja realmente deletar esta conta?");
                    Console.WriteLine("Sim -                              1");
                    Console.WriteLine("Não -                              2");
                    try
                    {
                        option = Int32.Parse(Console.ReadLine());
                    }catch (Exception e)
                    {
                        e.ToString();
                        option = 100;
                    }
                    switch (option)
                    {
                    case 1:
                        if (opt == 1)
                        {
                            var solicitacao = context.Set <Solicitacao>();
                            foreach (var s in solicitacao)
                            {
                                if (s.Conta == conta)
                                {
                                    context.Remove(s);
                                }
                            }
                            context.Remove(contaC);
                            context.Remove(conta);
                            context.Remove(cliente);
                            context.SaveChanges();
                        }
                        else if (opt == 2)
                        {
                            var solicitacao = context.Set <Solicitacao>();
                            foreach (var s in solicitacao)
                            {
                                if (s.Conta == conta)
                                {
                                    context.Remove(s);
                                }
                            }
                            context.Remove(contaP);
                            context.Remove(conta);
                            context.Remove(cliente);
                            context.SaveChanges();
                        }
                        Console.WriteLine("Operação Realizada com sucesso!");
                        Console.WriteLine(" ");

                        break;

                    case 2:
                        break;

                    default:
                        Console.WriteLine("Opção Invalida");
                        Console.WriteLine(" ");
                        break;
                    }
                    if (option == 1)
                    {
                        return(0);
                    }
                }
            }catch (Exception e)
            {
                e.ToString();
                Console.WriteLine("Credenciais incorretas");
                Console.WriteLine(" ");
            }

            return(5);
        }
 public static void CriarNovaContaPoupanca(string cpf, string nome, int idade, Agencia agencia, BancoContext context)
 {
     try
     {
         var newCliente = new Cliente()
         {
             Nome = nome, Cpf = cpf, Idade = idade
         };
         context.Add(newCliente);
         context.SaveChanges();
         decimal saldo    = 0;
         var     newConta = new Conta()
         {
             Agencia = agencia, Cliente = newCliente, Saldo = saldo, Titular = newCliente.Nome
         };
         context.Add(newConta);
         context.SaveChanges();
         decimal taxaJuros        = 0;
         var     newContaPoupanca = new ContaPoupanca()
         {
             Conta = newConta, TaxaJuros = taxaJuros
         };
         context.Add(newContaPoupanca);
         context.SaveChanges();
         Console.WriteLine("Operação Realizada com sucesso!");
         Console.WriteLine(" ");
     }catch (Exception e)
     {
         e.ToString();
         Console.WriteLine("Não foi possivel realizar esta ação!");
         Console.WriteLine(" ");
     }
 }
        public static int CriarConta(BancoContext context)
        {
            string  cpf;
            int     idade;
            string  agencia;
            Agencia agenciaCliente = new Agencia();
            string  nome;

            Console.WriteLine("Digite seu cpf");
            cpf = Console.ReadLine();
            try
            {
                var clienteCadastrado = context.Clientes.Where(b => b.Cpf == cpf)
                                        .FirstOrDefault();
                if (clienteCadastrado != null)
                {
                    Console.WriteLine("Este cpf já esta cadastrado");
                    return(0);
                }
            }catch (Exception e)
            {
                Console.WriteLine("Estamos passando pro problemas tecnicos!");
                Console.WriteLine("Tente novamente dentro de alguns minutos");
                Console.WriteLine(" ");
                return(0);
            }
            Console.WriteLine("Digite seu Nome");
            nome = Console.ReadLine();
            Console.WriteLine("Digite sua idade");
            try
            {
                idade = Int32.Parse(Console.ReadLine());
            }catch (Exception e)
            {
                e.ToString();
                Console.WriteLine("Idade Invalida");
                return(0);
            }
            Console.WriteLine("Selecione uma de nossas Agencias:");
            var bancos = context.Set <Banco>();

            foreach (var b in bancos)
            {
                if (b.Nome == "Banco do Brasil")
                {
                    Console.WriteLine("--------" + b.Nome + "--------");
                }
            }
            var agencias = context.Set <Agencia>();

            foreach (var a in agencias)
            {
                Console.WriteLine(a.Numero);
            }
            Console.WriteLine(" ");
            bool error = true;

            for (; error != false;)
            {
                Console.WriteLine("Digite a agencia que deseja");
                agencia = Console.ReadLine();
                try{
                    var agenciaSelecionada = context.Agencias.Where(b => b.Numero == agencia)
                                             .FirstOrDefault();
                    agenciaCliente = agenciaSelecionada;
                    error          = false;
                }catch (Exception e)
                {
                    e.ToString();
                    Console.WriteLine("Agencia Não Encontrada");
                    Console.WriteLine(" ");
                    error = true;
                }
            }
            int contaType = 0;

            for (; contaType != 1 && contaType != 2;)
            {
                Console.WriteLine("Escolha um tipo de conta:");
                Console.WriteLine(" ");
                Console.WriteLine("Conta Corrente          1");
                Console.WriteLine("Conta Poupanca          2");
                try
                {
                    contaType = Int32.Parse(Console.ReadLine());
                }catch (Exception e)
                {
                    e.ToString();
                    contaType = 100;
                }
                switch (contaType)
                {
                case 1:
                    CriarNovaContaCorrente(cpf, nome, idade, agenciaCliente, context);
                    break;

                case 2:
                    CriarNovaContaPoupanca(cpf, nome, idade, agenciaCliente, context);
                    break;

                default:
                    Console.WriteLine("Tipo de conta Invalido");
                    Console.WriteLine(" ");
                    break;
                }
            }
            return(0);
        }