Exemple #1
0
        /// <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());
        }
Exemple #2
0
        /// <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");
        }
Exemple #3
0
        /// <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());
            }
        }
Exemple #4
0
 /// <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);
         }
     }
 }
Exemple #5
0
 /// <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");
         }
     }
 }
Exemple #6
0
        /// <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");
        }
Exemple #7
0
        /// <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());
        }