Exemple #1
0
        public Task <bool> Vend(CashCard cashCard, int PinNumber)
        {
            var isVendingSuccess = false;

            // No point proceeding if PIN is incorrect
            if (_cardManager.IsAuthorised(cashCard, PinNumber))
            {
                var isVendingPossible  = _inventoryManager.IsVendingPossible();
                var doesAccHaveBalance = _accountManager.DoesAccountHaveBalance(cashCard);


                if (isVendingPossible.Result && doesAccHaveBalance.Result)
                {
                    var updateAccount   = _accountManager.UpdateAccount(cashCard);
                    var updateInventory = _inventoryManager.UpdateInventory();
                    if (updateAccount && updateInventory)
                    {
                        isVendingSuccess = true;
                    }
                }
            }

            return(Task.FromResult <bool>(isVendingSuccess));
        }