private Dictionary <Guid, Tuple <int, double> > CombineBothDiscounts(Dictionary <Guid, Tuple <int, double> > cartBefore) { Dictionary <Guid, Tuple <int, double> > leftCart = DiscountLeft.GetUpdatedPricesFromCart(cartBefore); Dictionary <Guid, Tuple <int, double> > cartAfter = DiscountRight.GetUpdatedPricesFromCart(leftCart); return(cartAfter); }
public override bool IsConditionSatisfied(Dictionary <Guid, Tuple <int, double> > cart) { if (DateTime.Now.Date <= DateUntil.Date) { switch (Op) { case Operator.AND: return(DiscountLeft.IsConditionSatisfied(cart) && DiscountRight.IsConditionSatisfied(cart)); case Operator.OR: return(DiscountLeft.IsConditionSatisfied(cart) || DiscountRight.IsConditionSatisfied(cart)); case Operator.XOR: if (DiscountLeft.IsConditionSatisfied(cart)) { return(!DiscountRight.IsConditionSatisfied(cart)); } else { return(DiscountRight.IsConditionSatisfied(cart)); } case Operator.IMPLIES: if (DiscountLeft.IsConditionSatisfied(cart)) { return(DiscountRight.IsConditionSatisfied(cart)); } else { return(true); } default: throw new NotSupportedException(); } } else { return(false); } }
internal override bool isForItem(Guid itemID) { return(DiscountLeft.isForItem(itemID) || DiscountRight.isForItem(itemID)); }