/// <summary> /// The transfer menu /// </summary> private void Transfer() { Console.WriteLine("Transfer \n To which account to transfer money?"); var givenBankNumber = InputHandling.CheckNumber(); if (this.queryAccess.accountTable.CheckIfBankNumberExists(givenBankNumber)) { Console.WriteLine("How much to deposit?"); var givenAmmount = InputHandling.CheckNumber(); if (this.IsGivenAmmountHigherThanBalance(givenAmmount)) { this.queryAccess.accountTable.ChangeBalance((a) => a.BankNumber == givenBankNumber, givenAmmount, (a) => a.Money += givenAmmount); this.queryAccess.accountTable.ChangeBalance((a) => a.AccountId == LoggedInUser.AccountId, givenAmmount, (a) => a.Money -= givenAmmount); Console.WriteLine("Money has been transfered"); return; } else { Console.WriteLine("Error: given ammount is lower than balance, current balance: {0}", LoggedInUser.Balance); this.BackRetryExit(() => this.MainMenuOptions(), () => this.Transfer()); return; } } Console.WriteLine("Error: Bank number does not exist"); this.BackRetryExit(() => this.MainMenuOptions(), () => this.Transfer()); }
/// <summary> /// The deposit menu /// </summary> private void Deposit() { Console.WriteLine("Deposit \n How much do you like to deposit?"); var givenAmmount = InputHandling.CheckNumber(); queryAccess.accountTable.ChangeBalance((a) => a.AccountId == LoggedInUser.AccountId, givenAmmount, (a) => a.Money += givenAmmount); Console.WriteLine("The money has been deposit"); }
/// <summary> /// The Withdraw menu /// </summary> private void Withdraw() { Console.WriteLine("Withdraw \n How much do you like to draw?"); var givenAmmount = InputHandling.CheckNumber(); if (this.IsGivenAmmountHigherThanBalance(givenAmmount)) { queryAccess.accountTable.ChangeBalance((a) => a.AccountId == LoggedInUser.AccountId, givenAmmount, (a) => a.Money -= givenAmmount); Console.WriteLine("Money has been Withdrawn"); } else { Console.WriteLine("Error: given ammount should be higher than the current balance"); this.BackRetryExit(() => this.MainMenuOptions(), () => this.Withdraw()); } }
/// <summary> /// Used for the create bank account menu /// </summary> /// <param name="bankNumber">the banknumber that the user entered</param> /// <returns></returns> private int CheckIfBankNumberExists(int bankNumber) { while (true) { var doesBankAccountExist = queryAccess.accountTable.CheckIfBankNumberExists(bankNumber); if (doesBankAccountExist) { Console.WriteLine("Bank number already exists, try again:"); bankNumber = InputHandling.CheckNumber(); } else { return(bankNumber); } } }
/// <summary> /// Checks if two inserted pincodes match and are correct /// </summary> /// <param name="message">message to display when the pincode confirmation screen is shown</param> /// <returns></returns> private int PincodeConfirmation(string message) { while (true) { Console.WriteLine(message); var firstPincode = InputHandling.CheckNumber(); Console.WriteLine("Type your pincode again"); var secondPincode = InputHandling.CheckNumber(); if (firstPincode.ToString().Length != 4) { Console.WriteLine("Error: the pincode needs to be 4 digits, try it again"); } else if (firstPincode.Equals(secondPincode)) { return(firstPincode); } else { Console.WriteLine("Error: the two entered pincodes didn't match, try it again"); } } }
/// <summary> /// Create bank acount menu /// </summary> private void CreateBankAccount() { Console.WriteLine("Create Bank Account"); Console.WriteLine("Type your name"); var name = Console.ReadLine(); Console.WriteLine("Type your surname"); var surname = Console.ReadLine(); Console.WriteLine("Type the bank account number that you would like to have"); var bankNumber = this.CheckIfBankNumberExists(InputHandling.CheckNumber()); var pincode = PincodeConfirmation("Type the pincode you would like to have"); queryAccess.accountTable.AddAccount(new Account() { BankNumber = bankNumber, Money = 0, Pincode = pincode }); queryAccess.user.AddUser(new User() { Name = name, Surname = surname, AccountId = queryAccess.accountTable.GetAccountId(bankNumber) }); Console.WriteLine("Registered \n you can login now"); }
/// <summary> /// The login menu /// </summary> private void Login() { Console.WriteLine("Login"); Console.WriteLine("Enter your bank account number"); var givenBanknumber = InputHandling.CheckNumber(); if (queryAccess.accountTable.CheckIfBankNumberExists(givenBanknumber)) { var givenPincode = this.PincodeConfirmation("Enter your pincode"); if (queryAccess.accountTable.IsPincodeCorrect(givenBanknumber, givenPincode)) { Console.WriteLine("Successfully logged in"); var loggedInUser = queryAccess.user.GetUserInformation(givenBanknumber); LoggedInUser.LogInUser(loggedInUser.Item1, loggedInUser.Item2); return; } Console.WriteLine("Error: The pincode is not correct"); } else { Console.WriteLine("Error: the bank account number has not been found"); } this.BackRetryExit(() => this.StartUpMenuOptions(), () => this.Login()); }