Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
 internal override bool isForItem(Guid itemID)
 {
     return(DiscountLeft.isForItem(itemID) || DiscountRight.isForItem(itemID));
 }