예제 #1
0
        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);
        }
예제 #2
0
        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;
                }
            }
        }