public decimal getTotalCost() { decimal totalCost = 0; int amount = _count; while (amount > 0) { if (_isOnPromotion && _promotionInfo.isMetPromoRequirements(amount)) { totalCost += _promotionInfo.getTotalPriceForQuantityMet(); amount -= _promotionInfo.getQuantityToGetPromoPrice(); } else { totalCost += _regularPrice; amount -= 1; } } return(totalCost); }
private static void displayPromoInfoToConsole(GroceryItemData item, IPromotion promoInfo) { if (promoInfo.getQuantityToGetPromoPrice() == 1) { Console.WriteLine(item.Name + " \t" + MoneyDisplayUtil.formatMoneyDisplay(promoInfo.getTotalPriceForQuantityMet())); } else { Console.WriteLine(item.Name + " (X" + promoInfo.getQuantityToGetPromoPrice() + ") " + MoneyDisplayUtil.formatMoneyDisplay(promoInfo.getTotalPriceForQuantityMet())); } Console.WriteLine("\t" + item.PromotionInfo.getPromoDisplayInfo()); Console.WriteLine("\tsavings " + MoneyDisplayUtil.formatMoneyDisplay(item.PromotionInfo.getSavings())); }