public static void SaveMoney(bool isTransfer = false) { OverdraftManagement overdraftManagement = new OverdraftManagement(); Console.Clear(); Console.WriteLine(" ACCOUNT DEPOSIT MENU"); Console.Write("How Much Do You Want To Save: "); double amountToSave = Convert.ToDouble(Console.ReadLine()); overdraftManagement.PayOverdraft(LoggedInAccount, amountToSave); LoggedInAccount.AccountBalance += amountToSave; Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"You have succesfully Deposited {amountToSave} into your account."); Console.WriteLine($"New Balance is {LoggedInAccount.AccountBalance}"); Menu.ShowContinueMenu(); }
public static void Transfer(string accountNumber, double amountToTransfer) { OverdraftManagement overdraftManagement = new OverdraftManagement(); try { AccountHolder accountToTransferTo = FindByAccountNumber(accountNumber); if (accountNumber.Equals(LoggedInAccount.AccountNumber)) { throw new Exception("You cannot make a transfer to yourself"); } if (accountToTransferTo == null) { throw new Exception($"Account with account number {accountNumber} not does not exist. Please check and try again"); } else { if (LoggedInAccount.AccountBalance < amountToTransfer) { throw new Exception("Insufficient Balance."); } else { Console.Write($"Are you sure you want to transfer {amountToTransfer} to {accountToTransferTo.FirstName} {accountToTransferTo.LastName} (y/n): "); string answer = Console.ReadLine().ToLower().Trim(); if (answer.Equals("y")) { if (LoggedInAccount.Pin == 0) { Console.WriteLine("You have to set your pin to continu.."); Menu.ShowContinueMenu(); ChangePin(); } else { Console.Write("Enter your pin: "); int enteredPin = Convert.ToInt32(Console.ReadLine()); if (enteredPin == LoggedInAccount.Pin) { overdraftManagement.PayOverdraft(accountToTransferTo, amountToTransfer); accountToTransferTo.AccountBalance += amountToTransfer; LoggedInAccount.AccountBalance -= amountToTransfer; Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Transfer Successful"); Menu.ShowContinueMenu(); } else { throw new Exception("Incorrect pin"); } } } else if (answer.Equals("n")) { throw new Exception("Operation Cancelled."); } else { throw new Exception("Invalid input"); } } } } catch (Exception e) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(e.Message); Menu.ShowContinueMenu(); } }
public static void HandleLoggedInAccountHolderMenu(string option) { LoanManagement loanManagement = new LoanManagement(); OverdraftManagement overdraftManagement = new OverdraftManagement(); switch (option) { case "0": HandleSubMenu("1"); break; case "1": AccountHolderRepository.SaveMoney(); HandleAccountHolderMenu("2"); break; case "2": Menu.ResetMenuSettings(); Console.WriteLine(" TRANSFER MENU"); Console.Write("Enter account number: "); string accountNumber = Console.ReadLine(); Console.Write("How much do you want to transfer: "); double amountToTransfer = Convert.ToDouble(Console.ReadLine()); AccountHolderRepository.Transfer(accountNumber, amountToTransfer); HandleAccountHolderMenu("2"); break; case "3": AccountHolderRepository.WithdrawMoney(); HandleAccountHolderMenu("2"); break; case "4": AccountHolderRepository.CheckBalance(); HandleAccountHolderMenu("2"); break; case "5": ShowLoanServiceMenu(); string loanOption = Console.ReadLine(); if (loanOption.Equals("0")) { HandleAccountHolderMenu("2"); } else if (loanOption.Equals("1")) { ShowLoanMenu(); string minOption = Console.ReadLine(); if (minOption.Equals("0")) { HandleAccountHolderMenu("2"); } else { HandleLoanMenu(minOption); } } else if (loanOption.Equals("2")) { if (loanManagement.checkLoanBalance(AccountHolderRepository.LoggedInAccount.Id, false)) { Menu.ResetMenuSettings(); Console.WriteLine(" LOAN PAYBACK MENU"); Console.Write("How much do you want to pay: "); double amountToPay = Convert.ToDouble(Console.ReadLine()); loanManagement.payBackLoan(AccountHolderRepository.LoggedInAccount.Id, amountToPay); } Menu.ShowContinueMenu(); HandleAccountHolderMenu("2"); } else if (loanOption.Equals("3")) { loanManagement.checkLoanBalance(AccountHolderRepository.LoggedInAccount.Id); Menu.ShowContinueMenu(); HandleAccountHolderMenu("2"); } break; case "6": ResetMenuSettings(); Console.WriteLine(" OVERDRAFT MENU"); Console.Write("How much overdraft?: "); double overdraftAmount = Convert.ToDouble(Console.ReadLine()); if (overdraftAmount > 100000) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Overdraft limit exceeded. Maximum overdraft is 100,000"); } else if (overdraftAmount <= AccountHolderRepository.LoggedInAccount.AccountBalance) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Overdraft less than or equal to account balance. Please proceed to withdrawal"); } else { if (!overdraftManagement.checkOverdraftBalance(AccountHolderRepository.LoggedInAccount.Id)) { overdraftManagement.GetOverdraft(AccountHolderRepository.LoggedInAccount, overdraftAmount); } } ShowContinueMenu(); HandleAccountHolderMenu("2"); break; case "7": ShowAccountHolderUpdateMenu(); string updateOption = Console.ReadLine(); UpdateAccountHolderMenu(AccountHolderRepository.LoggedInAccount.Id, updateOption); HandleAccountHolderMenu("2"); break; case "8": AccountHolderRepository.ChangePassword(); HandleAccountHolderMenu("2"); break; case "9": AccountHolderRepository.SetPin(); HandleAccountHolderMenu("2"); break; default: break; } }