Ejemplo n.º 1
0
        public static void AccountsMenu(string[,] clientsArray, decimal[,] accountsArray)
        {
            MenuLib.PrintSubmenu("ACESSO AO MENU DE CONTAS");
            int clientPosition = Verifications.ReadCPF(clientsArray, "Digite o CPF do cliente:");

            if (clientPosition != -1)
            {
                decimal.TryParse(clientsArray[clientPosition, 0], out decimal clientCPF);
                string[] accountsMenuOptions = new string[] { "Criar uma nova conta",
                                                              "Remover uma conta", "Consultar contas do cliente",
                                                              "Retornar ao menu principal" };
                bool returnToMainMenu = false;
                do
                {
                    MenuLib.PrintMenu(accountsMenuOptions, "MENU DE CONTAS");
                    MenuLib.PrintMessage("Acessando as contas de:\n");
                    ClientsLib.PrintClientNameAndCPF(clientsArray, clientPosition);
                    Console.WriteLine();
                    string accountsMenuChoice = MenuLib.ReadOption(accountsMenuOptions);
                    switch (accountsMenuChoice)
                    {
                    case "Criar uma nova conta":
                        accountsArray = AccountsLib.AddNewAccount(accountsArray, clientCPF);
                        break;

                    case "Remover uma conta":
                        accountsArray = AccountsLib.RemoveAccount(accountsArray, clientCPF);
                        break;

                    case "Consultar contas do cliente":
                        AccountsLib.ConsultAccounts(accountsArray, clientCPF);
                        break;

                    case "Retornar ao menu principal":
                        returnToMainMenu = true;
                        break;
                    }
                }while (!returnToMainMenu);
                MainMenu(clientsArray, accountsArray);
            }
        }
Ejemplo n.º 2
0
        public static void OperationsMenu(string[,] clientsArray, decimal[,] accountsArray)
        {
            MenuLib.PrintSubmenu("ACESSO AO MENU DE OPERAÇÕES");
            int accountIndex = Verifications.ReadAccount(accountsArray,
                                                         "Digite a conta na qual deseja realizar a operação:");

            if (accountIndex != -1)
            {
                AccountsLib.PrintAccountNameAndCPF(accountsArray, clientsArray, accountIndex);
                if (MenuLib.ConfirmationMenu("\nA conta está correta?", "Sim", "Não, voltar para " +
                                             "menu principal"))
                {
                    string[] operationsMenu = new string[] { "Depósito", "Saque",
                                                             "Retornar ao menu principal" };
                    MenuLib.PrintMenu(operationsMenu, "MENU DE OPERAÇÕES");
                    string operationsMenuChoice = MenuLib.ReadOption(operationsMenu);
                    switch (operationsMenuChoice)
                    {
                    case "Depósito":
                        decimal creditValue = MenuLib.ReadMoneyValue("Entre com o valor a ser " +
                                                                     "depositado na conta:");
                        if (MenuLib.ConfirmationMenu("\nConfirma a operação?"))
                        {
                            accountsArray[accountIndex, 2] += creditValue;
                            MenuLib.PrintMessage("Operação realizada com sucesso!\n");
                            AccountsLib.PrintAccount(accountsArray, accountIndex);
                            MenuLib.PrintMessage("Digite qualquer tecla para retornar ao menu.");
                            Console.ReadKey();
                        }
                        else
                        {
                            MenuLib.PrintMessage("\nOperação cancelada pelo usuário.\n" +
                                                 "Digite qualquer tecla para retornar ao menu.");
                            Console.ReadKey();
                        }
                        break;

                    case "Saque":
                        decimal debitValue = MenuLib.ReadMoneyValue("Entre com o valor a ser " +
                                                                    "debitado da conta:");
                        if (!Verifications.IsThereEnougthCredit(accountsArray[accountIndex, 2],
                                                                debitValue))
                        {
                            MenuLib.PrintMessage("\nSaldo insuficiente.\n\n" +
                                                 "Pressione qualquer tecla para retornar ao menu.");
                            Console.ReadKey();
                            break;
                        }
                        if (MenuLib.ConfirmationMenu("\nConfirma a operação?"))
                        {
                            accountsArray[accountIndex, 2] -= debitValue;
                            MenuLib.PrintMessage("Operação realizada com sucesso!\n\n" +
                                                 "Saldo atualizado:\n");
                            AccountsLib.PrintBalance(accountsArray, accountIndex);
                            MenuLib.PrintMessage("Digite qualquer tecla para retornar ao menu.");
                            Console.ReadKey();
                        }
                        else
                        {
                            MenuLib.PrintMessage("\nOperação cancelada pelo usuário.\n\n" +
                                                 "Digite qualquer tecla para retornar ao menu.");
                            Console.ReadKey();
                        }
                        break;

                    case "Retornar ao menu principal":
                        MainMenu(clientsArray, accountsArray);
                        break;
                    }
                }
            }
            MainMenu(clientsArray, accountsArray);
        }