Ejemplo n.º 1
0
        private void InitializeFields()
        {
            _transactionCount = 1;

            _account = new SavingsAccount
            {
                Balance = 500.00m,
                //InterestPercentage = 0.0215m
            };

            //_interest = new CalculateInterest(_account, _transactionCount);
            _balance  = new GetBalanceCommand(_account, _transactionCount);
            _deposit  = new DepositCommand(_account, 0m, _transactionCount);
            _withdraw = new WithdrawCommand(_account, 0m, _transactionCount);
            _revert   = new RevertTransaction(_account, 0m, _transactionCount, 0);

            _invoker = new AccountInvoker(_balance, _deposit, _withdraw, _revert);
        }
Ejemplo n.º 2
0
        public void Run()
        {
            Console.WriteLine("Please enter your name:");
            var clientName = Console.ReadLine();

            Console.Clear();

            Console.WriteLine($"{clientName}, What is your initial deposit?");
            _clientBalance = decimal.Parse(Console.ReadLine());

            Console.WriteLine($"Are you a Gold member? y/n");
            var memberResponse = Console.ReadLine();

            if (memberResponse == "y" || memberResponse == "Y")
            {
                _newAccount = new GoldLevelEmployee();
            }
            else
            {
                _newAccount = new Employee();
            }

            _seeBalance = new SeeAccountBalance(_newAccount, _clientBalance);
            _withdraw   = new WithdrawFromAccount(_newAccount, _clientBalance);
            _deposit    = new DepositToAccount(_newAccount, _clientBalance);
            _invoker    = new AccountInvoker(_seeBalance, _withdraw, _deposit);

            Console.WriteLine($"Welcome {clientName} To Account Manager!" +
                              $"\n\nPress any key to continue...");
            Console.ReadKey();
            var response = true;

            while (response)
            {
                Console.WriteLine($"\nWhat would you like to do?\n\t" +
                                  "1. See funds.\n\t" +
                                  "2. Deposit funds.\n\t" +
                                  "3. Withdraw funds.\n\t" +
                                  "4. See Account History\n\t" +
                                  "5. Revert action\n\t" +
                                  "6. Exit.");
                var menuResponse = int.Parse(Console.ReadLine());
                Console.Clear();

                switch (menuResponse)
                {
                case 1:
                    _invoker.SeeBalance();
                    break;

                case 2:
                    decimal deposit = 0m;
                    Console.WriteLine("How much will you be depositing?");
                    deposit = decimal.Parse(Console.ReadLine());
                    _invoker.Deposit(deposit);
                    break;

                case 3:
                    UIWithdraw();
                    break;

                case 4:
                    Console.WriteLine("We apologize. This feature is not yet available.");
                    break;

                case 5:
                    Console.WriteLine("We apologize. This feature is not yet available.");
                    break;

                case 6:
                    response = false;
                    break;
                }
            }
        }