Exemplo n.º 1
0
        public bool ApplyCoupon(ShoppingCart cart, string coupon)
        {
            if (String.IsNullOrWhiteSpace(coupon))
            {
                return(false);
            }

            var oldCoupon = cart.CouponCode;

            cart.CouponCode = coupon;

            var context = PriceCalculationContext.CreateFrom(cart);

            new PriceCalculator().Calculate(context);

            if (context.AppliedPromotions.Any(p => p.RequireCouponCode && p.CouponCode == coupon))
            {
                return(true);
            }

            cart.CouponCode = oldCoupon;

            _repository.Database.SaveChanges();

            return(false);
        }
Exemplo n.º 2
0
        public PriceCalculationContext CalculatePrice(ShoppingCart cart, ShoppingContext shoppingContext)
        {
            Require.NotNull(cart, "cart");

            var context = PriceCalculationContext.CreateFrom(cart);

            if (shoppingContext != null)
            {
                context.Culture = shoppingContext.Culture;
            }

            new PriceCalculator().Calculate(context);

            Event.Raise(new CartPriceCalculated(cart, context), _instance);

            return(context);
        }