Exemple #1
0
 public void AddLine(Product product, int quantity)
 {
     if (CartLines.Where(cl => cl.Product == product).Count() != 0)
     {
         CartLine cl = CartLines.Where(x => x.Product.Equals(product)).FirstOrDefault();
         cl.Quantity += quantity;
     }
     else
     {
         _lines.Add(new CartLine()
         {
             Product  = product,
             Quantity = quantity
         });
     }
 }
        /// <summary>
        /// Ürünün kategorileri ve üst kategorileri , kampanyanın kategorisne eşitse ve toplam adet kampanya kurallarını sağlıyosa indirim yapılabilir.
        /// </summary>
        /// <param name="campaigns"></param>
        public void ApplyDiscounts(params ICampaign[] campaigns)
        {
            double totalCampaignDiscount = 0;

            foreach (var campaign in campaigns)
            {
                if (CartLines.FindAll(x => x.Product.Category.GetParentCategories().Exists(a => a == campaign.Category)).Sum(y => y.Quantity) >= campaign.ProductQuantity)
                {
                    double discount = calculateDiscount(TotalPrice, campaign.Rate, campaign.DiscountType);
                    TotalPrice            -= discount;
                    totalCampaignDiscount += discount;
                }
            }

            CampaignDiscount = totalCampaignDiscount;
        }
        /// <summary>
        /// Sepete ürün ve adet bilgisini ekleme
        /// </summary>
        /// <param name="product"></param>
        /// <param name="quantity"></param>
        public void AddItem(IProduct product, int quantity)
        {
            var cardLines = CartLines.Where(x => x.Product == product).ToList();

            if (cardLines != null && cardLines.Count() > 0)
            {
                cardLines.First().Quantity += quantity;
            }
            else
            {
                CartLines.Add(new CartLine()
                {
                    Product  = product,
                    Quantity = quantity
                });
            }

            this.TotalPrice = this.OriginalCartPrice;
        }
Exemple #4
0
 public virtual void Clear()
 {
     CartLines.Clear();
 }