Slide 17
Slide 17 text
解決方案
● 實作第一個折扣規則:任兩箱結帳 88 折
public class BuyMoreBoxesDiscountRule : RuleBase {
public override IEnumerable Process(CartContext cart) {
var matchedProducts = new List();
foreach (var p in cart.PurchasedItems) {
matchedProducts.Add(p);
if (matchedProducts.Count != this._boxCount) continue;
yield return new Discount // 符合折扣 {
Amount = matchedProducts.Select(
product => product.Price).Sum() * this._percentOff / 100,
Products = matchedProducts.ToArray(),
Rule = this,
};
matchedProducts.Clear();
}
}
}
17
範例程式碼: Andrew.DiscountDemo/BuyMoreBoxesDiscountRule.cs at master · Zhi-Wei/Andrew.DiscountDemo · GitHub