Пример #1
0
        public double AddPurchaseTransaction(int productId)
        {
            _state = eTransactionState.Purchase;

            ProductItem product = _db.GetProductItem(productId);

            if (product.Price > _runningTotal)
            {
                throw new Exception("More money is required.");
            }

            TransactionItem transactionItem = new TransactionItem();

            transactionItem.ProductId = productId;
            transactionItem.SalePrice = product.Price;
            _transactionItems.Add(transactionItem);

            VendingOperation operation = new VendingOperation();

            operation.OperationType = VendingOperation.eOperationType.PurchaseItem;
            operation.Price         = product.Price;
            operation.RunningTotal  = _runningTotal;
            operation.ProductName   = product.Name;
            _log.LogOperation(operation);

            _runningTotal -= product.Price;

            return(_runningTotal);
        }
Пример #2
0
        public double AddFeedMoneyOperation(double amountAdded)
        {
            _state = eTransactionState.FeedMoney;

            VendingOperation operation = new VendingOperation();

            operation.OperationType = VendingOperation.eOperationType.FeedMoney;
            operation.Price         = amountAdded;
            operation.RunningTotal  = _runningTotal;
            _log.LogOperation(operation);

            _runningTotal += amountAdded;

            return(_runningTotal);
        }
Пример #3
0
        public Change AddGiveChangeOperation()
        {
            _state = eTransactionState.Change;

            double           result    = _runningTotal;
            VendingOperation operation = new VendingOperation();

            operation.OperationType = VendingOperation.eOperationType.GiveChange;
            operation.RunningTotal  = _runningTotal;
            _log.LogOperation(operation);

            _change = GetChange();

            _runningTotal = 0.0;

            return(_change);
        }