private void ApplyDiscountRule(List <ItemPile> basket, DiscountRule currentRule) { foreach (var basketPile in basket) { ItemPile rulePile = currentRule.Piles.FirstOrDefault(p => p.Unit == basketPile.Unit); if (rulePile != null) { basketPile.RemoveFromPile(rulePile.Quantity); } } }
public bool IsMatchingRule(List <ItemPile> basket, DiscountRule rule) { foreach (ItemPile rulePile in rule.Piles) { //not all rules can be applied, so need to check the quantity in the basket ItemPile basketPile = basket.FirstOrDefault(p => p.Unit == rulePile.Unit && p.Quantity >= rulePile.Quantity); if (basketPile == null) { return(false); } } return(true); }