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); }
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); }