public TransactionTests() { LoggedInAccountId = 1; var testTransactionOptions = new DbContextOptionsBuilder <TransactionDbContext>() .UseInMemoryDatabase("TestTransactionsDatabase") .Options; _testTransactionDbContext = new TransactionDbContext(testTransactionOptions); _testTransactionQueries = new TransactionQueries(_testTransactionDbContext, LoggedInAccountId); _testDepositService = new DepositService(_testTransactionQueries); _testWithdrawalService = new WithdrawalService(_testTransactionQueries); _testAccountHistoryService = new AccountHistoryService(_testTransactionQueries); }
public static void LoggedInMenuOptions(int accountId, ref bool loggedIn) { //instanticate dependencies for depositService, withdrawalService and transactionService var loggedinAccountId = accountId; var transactionOptions = new DbContextOptionsBuilder <TransactionDbContext>() .UseInMemoryDatabase("BankingAppDatabase") .Options; var transactionDbContext = new TransactionDbContext(transactionOptions); var transactionQueries = new TransactionQueries(transactionDbContext, loggedinAccountId); var accountHistoryService = new AccountHistoryService(transactionQueries); while (loggedIn) { Console.WriteLine("Please choose from the following menu options:\n"); Console.WriteLine("a) Make a deposit"); Console.WriteLine("b) Make a withdrawal"); Console.WriteLine("c) Check your balance"); Console.WriteLine("d) See your transaction history"); Console.WriteLine("e) Log out"); Console.WriteLine("f) Quit"); var menuChoice = Console.ReadLine(); switch (menuChoice) { case "a": var depositService = new DepositService(transactionQueries); var depositAmount = ValidateTransactionEntry("Deposit"); var depositMessage = depositService.SubmitTransaction(depositAmount); Console.WriteLine(depositMessage); break; case "b": var withdrawalService = new WithdrawalService(transactionQueries); var withdrawalAmount = ValidateTransactionEntry("Withdrawal"); var withdrawalMessage = withdrawalService.SubmitTransaction(withdrawalAmount); Console.WriteLine(withdrawalMessage); break; case "c": Console.WriteLine($"Your account balance is: ${accountHistoryService.GetAccountBalance()}"); break; case "d": var transactionHistory = accountHistoryService.GetransactionHistory(); Console.WriteLine("Transaction History:\n"); foreach (var transaction in transactionHistory) { Console.WriteLine($"${transaction.Amount}"); Console.WriteLine(transaction.Timestamp); Console.WriteLine("--------------------------------------------------"); } break; case "e": loggedIn = false; break; case "f": Quit(); break; default: Console.WriteLine("Invalid selection, please choose again.\n"); break; } } }