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); }
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); }
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); }