Example #1
0
        IEnumerable <Product> IProductService.PopulateRetailDiscounts(List <Product> products)
        {
            var discountedProducts = products as IList <Product> ?? products.ToList();
            var promos             = RetailPromoService.GetRetailPromos();

            if (promos == null)
            {
                return(discountedProducts);
            }

            foreach (var promo in promos)
            {
                foreach (var product in discountedProducts)
                {
                    if (promo.ItemCode != product.ItemCode)
                    {
                        continue;
                    }
                    product.EligibleDiscounts.Add(new DiscountFactory().CreateDiscount(
                                                      (DiscountType)promo.DiscountType,
                                                      (decimal)promo.DiscountAmount,
                                                      promo.BV,
                                                      promo.CV
                                                      )
                                                  );

                    var productDiscount = product.EligibleDiscounts.Find(d => d.DiscountType == (DiscountType)promo.DiscountType);
                    product.ApplyDiscount(productDiscount);
                    product.ApplyDiscountType = productDiscount.DiscountType;
                    product.PriceEachOverride = product.DiscountedPrice;
                    product.AppliedAmount     = productDiscount.AppliedAmount;
                }
            }
            return(discountedProducts);
        }
Example #2
0
        Product IProductService.PopulateRetailDiscounts(Product product)
        {
            var promo = RetailPromoService.GetRetailPromo(product);

            if (promo == null)
            {
                return(product);
            }

            //product.EligibleDiscounts.Add(new DiscountFactory().CreateDiscount(
            //                                                        (DiscountType)promo.DiscountType,
            //                                                        (decimal)promo.DiscountAmount,
            //                                                         promo.BV,
            //                                                         promo.CV));

            //var productDiscount = product.EligibleDiscounts.Find(d => d.DiscountType == (DiscountType)promo.DiscountType);
            //product.ApplyDiscount(productDiscount);
            //product.ApplyDiscountType = productDiscount.DiscountType;
            //product.PriceEachOverride = product.DiscountedPrice;
            //product.AppliedAmount = productDiscount.AppliedAmount;
            AddEligibleDiscounts(promo, product);

            return(product);
        }