public void Clear() { DiscountPercent = 0; DiscountAmount = 0; ShoppingCartItems.Clear(); ShoppingCartCoupons.Clear(); }
public void ApplyCoupon(Coupon coupon) { coupon.Apply(this, User); var lineCoupon = LineCoupon.Create(coupon, this); ShoppingCartCoupons.Add(lineCoupon); }
public void RemoveCoupon(Coupon coupon) { coupon.Remove(this); var lineCoupons = ShoppingCartCoupons.ToList(); lineCoupons.Remove(ShoppingCartCoupons.SingleOrDefault(c => c.CouponId == coupon.Id)); ShoppingCartCoupons = lineCoupons; }
public Order CheckOut() { // 1. validate shoppingCart items if (ShoppingCartItems.Count <= 0) { throw new ShoppingCartValidationException("your shopping cart is empty."); } foreach (var item in ShoppingCartItems) { item.Validate(); } // 2. validate shoppingCart Coupons foreach (var coupon in ShoppingCartCoupons.Select(sc => sc.Coupon)) { coupon.Validate(User); } // 3. create order, move items & coupons to order return(Order.Create(User, this)); }
public void RemoveShoppingCartItem(LineItem item) { // remove item var itemList = ShoppingCartItems.ToList(); itemList.Remove(item); ShoppingCartItems = itemList; // check coupons if not valid then remvove the coupon var lineCoupons = ShoppingCartCoupons.ToList(); var coupons = ShoppingCartCoupons.Select(sc => sc.Coupon); foreach (var c in coupons) { if (!c.IsCouponRulesApplicable(itemList)) { c.Remove(this); lineCoupons.Remove(ShoppingCartCoupons.SingleOrDefault(sc => sc.CouponId == c.Id)); } } ShoppingCartCoupons = lineCoupons; }