protected void Page_Load(object sender, EventArgs e) { if (Session["CustomerID"] != null) { var menu = Master.FindControl("HomeMenu") as Menu; foreach (MenuItem mi in menu.Items) { if (mi.Value == "login") { mi.Text = "Log Out"; } else if (mi.Value == "register") { mi.Text = ""; } } } Session["selectedAccountID"] = null; //session verify if it has an ID or not, if not , redirect to the login if (String.IsNullOrEmpty(Session["CustomerID"] + "")) { Response.Redirect("~/Login.aspx"); } else { var objCustomerBLL = new Customers_BLL(); var objTransactionsBLL = new Transactions_BLL(); var objAccountsBLL = new Accounts_BLL(); int selectedCustomerID = (int)Session["CustomerID"]; //List<Transactions> lstAccountBalances; //lstAccountBalances = objTransactionsBLL.GetAllAccountBalances(selectedCustomerID); List <double> lstBalance = new List <double>(); for (int i = 1; i < 4; i++) { lstBalance.Add(objAccountsBLL.GetBalance(selectedCustomerID, i)); } DataTable dt = new DataTable(); dt.Columns.Add("Account Type"); dt.Columns.Add("Balance"); dt.Rows.Add("Checking"); dt.Rows.Add("Savings"); dt.Rows.Add("Loan"); for (int i = 0; i < lstBalance.Count; i++) { dt.Rows[i]["Balance"] = lstBalance[i]; } lblWelcome.Text = "Welcome " + objCustomerBLL.GetCustomerName(selectedCustomerID); gridAccountBalances.DataSource = dt; gridAccountBalances.DataBind(); } }
static void Main(string[] args) { Accounts_BLL accounts = new Accounts_BLL(); Transactions_BLL transactions = new Transactions_BLL(); Customers_BLL customers = new Customers_BLL(); bool bankMenuFlag = true; bool selectAcctMenuFlag = true; bool mainMenuFlag = true; bool accountMenuFlag = true; bool transMenuFlag = true; bool custFlag = true; bool checkCustFlag = true; BankMenu(); //BankMenu starts the application void BankMenu() { try { do { Console.WriteLine("Application Menu:\n1. Login \n2. Register \n3. Exit"); string bankMenuInput = Console.ReadLine(); bool bankMenuInputCheck = int.TryParse(bankMenuInput, out int bankMenuInputInteger); if (bankMenuInputCheck) { switch (bankMenuInputInteger) { case 1: CustomerLoginMenu(); break; case 2: CustomerRegisterMenu(); continue; case 3: bankMenuFlag = false; Console.ReadKey(); break; default: Console.WriteLine("Please choose either 1 or 2 or 3"); break; } } else { Console.WriteLine("Please enter a value from the given options"); } } while (bankMenuFlag); } catch (Exception e) { Console.WriteLine("Exception caught: {0}", e.ToString()); } } //Method for the customer to log into the application void CustomerLoginMenu() { do { Console.WriteLine("Enter your customer ID:"); string custInput = Console.ReadLine(); bool custInputCheck = int.TryParse(custInput, out int custInputInteger); if (custInputCheck) { checkCustFlag = customers.validateCustomer(custInputInteger); if (checkCustFlag) { Console.WriteLine("Welcome to our Banking Application, {0}. You have successfully logged in.", customers.GetCustomerName(custInputInteger)); MainMenu(custInputInteger); custFlag = false; } else { Console.WriteLine("Your customer ID is not found. Please try again."); } } } while (custFlag); } //Method to register new customer into the application void CustomerRegisterMenu() { try { Console.WriteLine("Welcome to our Banking Application. Please enter the following details:\n"); Console.WriteLine("Enter your Full Name"); string userNameInput = Console.ReadLine(); Console.WriteLine("Enter your Address"); string userAddressInput = Console.ReadLine(); Console.WriteLine("Enter your Telephone Number"); string userTelephoneInput = Console.ReadLine(); Console.WriteLine("You have registered successfully. Your customerID is: {0}", customers.AddNewCustomer(userNameInput, userAddressInput, userTelephoneInput)); } catch (Exception e) { Console.WriteLine("Exception caught: {0}", e.ToString()); } } // Main menu after customer logs in. Gives options to select Accounts or transactions or log out. void MainMenu(int custID) { try { do { Console.WriteLine("Main Menu:\n1. Accounts \n2. Transactions \n3. Log Out"); string mainMenuInput = Console.ReadLine(); bool mainMenuInputCheck = int.TryParse(mainMenuInput, out int mainMenuInputInteger); if (mainMenuInputCheck) { switch (mainMenuInputInteger) { case 1: SelectAccountMenu(custID); break; case 2: SelectTransactionMenu(custID); break; case 3: mainMenuFlag = false; transMenuFlag = false; selectAcctMenuFlag = false; selectAcctMenuFlag = false; Console.ReadKey(); break; default: Console.WriteLine("Please choose either 1 or 2 or 3"); break; } } else { Console.WriteLine("Please enter a value from the given options"); } } while (mainMenuFlag); } catch (Exception e) { Console.WriteLine("Exception caught: {0}", e); } } // Gives options to check balance, deposit or withdraw void AccountMenu(int custID, int acctID) { try { do { Console.WriteLine("Account Menu: \n1. Get Balance \n2. Withdraw \n3. Deposit \n4. Select Account Menu \n5. Main Menu"); string accountMenuInput = Console.ReadLine(); bool accountMenuInputCheck = int.TryParse(accountMenuInput, out int accountMenuInputInteger); if (accountMenuInputCheck) { switch (accountMenuInputInteger) { case 1: Console.WriteLine("Your {0} account balance is: {1}", accounts.GetAccountTypeByID(acctID).GetAccountType(), transactions.GetBalance(custID, acctID)); break; case 2: Console.WriteLine("Enter an amount to withdraw:"); string amount = Console.ReadLine(); bool checkAmount = double.TryParse(amount, out double amountValue); if (checkAmount) { if (transactions.GetBalance(custID, acctID) - amountValue < 0) { Console.WriteLine("Please enter an amount within your balance: {0}", transactions.GetBalance(custID, acctID)); } else { transactions.Withdraw(custID, acctID, amountValue); Console.WriteLine("You have successfully withdrawn {0} from your {1} account.", amountValue, accounts.GetAccountTypeByID(acctID).GetAccountType()); Console.WriteLine("Your current balance in your {0} account is: {1}", accounts.GetAccountTypeByID(acctID).GetAccountType(), transactions.GetBalance(custID, acctID)); } } else { Console.WriteLine("Please enter a proper amount value."); } break; case 3: Console.WriteLine("Enter an amount to deposit:"); string depositAmount = Console.ReadLine(); bool checkDepositAmount = double.TryParse(depositAmount, out double depositAmountValue); if (checkDepositAmount) { if (depositAmountValue < 0) { Console.WriteLine("Please enter a valid amount value."); } else { transactions.Deposit(custID, acctID, depositAmountValue); Console.WriteLine("You have successfully deposited {0} in your {1} account.", depositAmountValue, accounts.GetAccountTypeByID(acctID).GetAccountType()); Console.WriteLine("Your current balance in your {0} account is: {1}", accounts.GetAccountTypeByID(acctID).GetAccountType(), transactions.GetBalance(custID, acctID)); } } else { Console.WriteLine("Please enter a proper amount value."); } break; case 4: SelectAccountMenu(custID); break; case 5: accountMenuFlag = false; selectAcctMenuFlag = false; Console.ReadKey(); break; default: Console.WriteLine("Please select a value from 1 to 5."); break; } } else { Console.WriteLine("Please enter a value from the given options"); } } while (accountMenuFlag); } catch (Exception e) { Console.WriteLine("Exception caught: {0}", e); } } // Gives options for customer to select any of his accounts and to check his balances. void SelectAccountMenu(int custID) { do { Console.WriteLine("Select Account Menu: \n1. {0} \n2. {1} \n3. {2} \n4. Get All Account Balances \n5. Main Menu", AccountType.Checking, AccountType.Savings, AccountType.Loan); string selectAcctMenuInput = Console.ReadLine(); bool selectAcctMenuInputCheck = int.TryParse(selectAcctMenuInput, out int selectAcctMenuInputInteger); if (selectAcctMenuInputCheck) { int acctID; switch (selectAcctMenuInputInteger) { case 1: acctID = (int)AccountType.Checking; AccountMenu(custID, acctID); break; case 2: acctID = (int)AccountType.Savings; AccountMenu(custID, acctID); break; case 3: acctID = (int)AccountType.Loan; AccountMenu(custID, acctID); break; case 4: transactions.DisplayAllBalances(transactions.GetAllAccountBalances(custID)); break; case 5: MainMenu(custID); selectAcctMenuFlag = false; break; default: Console.WriteLine("Please enter a value between 1 to 5."); break; } } else { Console.WriteLine("Please enter a value from the given options."); } } while (selectAcctMenuFlag); } // Gives options for the customer to check his transactions made on their accounts. void SelectTransactionMenu(int custID) { do { Console.WriteLine("Select the account to retrieve transactions: \n1. Checking \n2. Savings \n3. Loan \n4. Get All Transactions \n5. Main Menu "); string selectTransInput = Console.ReadLine(); bool selectTransInputCheck = int.TryParse(selectTransInput, out int selectTransInputInteger); if (selectTransInputCheck) { switch (selectTransInputInteger) { case 1: transactions.DisplayTransactions(transactions.GetTransactionsByID(custID, 1)); continue; case 2: transactions.DisplayTransactions(transactions.GetTransactionsByID(custID, 2)); continue; case 3: transactions.DisplayTransactions(transactions.GetTransactionsByID(custID, 3)); continue; case 4: transactions.DisplayTransactions(transactions.GetAllTransaction(custID)); continue; case 5: MainMenu(custID); mainMenuFlag = false; transMenuFlag = false; selectAcctMenuFlag = false; accountMenuFlag = false; break; default: Console.WriteLine("Please enter a value from the given options."); break; } } else { Console.WriteLine("Please select a value from the given options."); } } while (transMenuFlag); } }