Esempio n. 1
0
        public VendingMachines.PurchaseResults PurchaseThisItem(int itemNumber, VendingMachines vm)
        {
            VendingMachines.PurchaseResults result = VendingMachines.PurchaseResults.PurchaseInProgress;

            Console.WriteLine();
            Console.WriteLine("***** Item [{0}] Selected for Purchase. *****", itemNumber);
            CurrentSelectedItem = itemNumber;

            if (this.IsItemOutOfStock(itemNumber))
            {
                Console.WriteLine();
                Console.WriteLine("***** Sorry, item: [{0}] is Out-Of-Stock. *****", itemNumber);
                return(VendingMachines.PurchaseResults.NotCompletedItemOutOfStock);
            }

            if (!this.AreCustomerFundsEnoughToPurchaseThisItem(itemNumber, vm))
            {
                Console.WriteLine();
                Console.WriteLine("***** Sorry, not enough money to purchase item: [{0}]. *****", itemNumber);
                return(VendingMachines.PurchaseResults.NotCompletedNotEnoughMoney);
            }

            result = this.CompetePurchase(itemNumber, vm);

            return(result);
        }
Esempio n. 2
0
        private VendingMachines.PurchaseResults CompetePurchase(int itemNumber, VendingMachines vm)
        {
            VendingMachines.PurchaseResults result = VendingMachines.PurchaseResults.PurchaseInProgress;

            this.DispenseThisItem(itemNumber);

            // Compute Change and Move Customer's Coins to CoinBox and ChangeBox
            this.ComputeChangeAndMoveCustomersCoins(itemNumber, vm);

            result = VendingMachines.PurchaseResults.PurchaseCompleted;
            return(result);
        }
Esempio n. 3
0
    private void PurchaseThisItem(int itemNumber, VendingMachines vm)
    {
        Vm.StateMachine.TransitionStateMachine(StateMachines.VMActions.SelectingItemForPurchase);

        VendingMachines.PurchaseResults purchaseResult = Vm.Inventory.PurchaseThisItem(itemNumber, vm);

        if (purchaseResult == VendingMachines.PurchaseResults.PurchaseCompleted)
        {
            Vm.StateMachine.TransitionStateMachine(StateMachines.VMActions.PurchaseCompleted);
        }
        else if (purchaseResult == VendingMachines.PurchaseResults.NotCompletedNotEnoughMoney)
        {
            Vm.StateMachine.TransitionStateMachine(StateMachines.VMActions.PurchaseNotCompleted);
        }
        else if (purchaseResult == VendingMachines.PurchaseResults.PurchaseNotCompleted)
        {
            Vm.StateMachine.TransitionStateMachine(StateMachines.VMActions.PurchaseNotCompleted);
        }
    }