Exemple #1
0
        private List <Purchase> GetPurchases(ComboCost cost)
        {
            List <Purchase> purchases = new List <Purchase>();

            foreach (var group in cost.Combo)
            {
                double discount;
                if (group.Total > 1)
                {
                    discount = context.Discounts.Where(p => p.MinProductsRequired == group.Total).Select(p => p.Percent).FirstOrDefault();
                }
                else
                {
                    discount = 0;
                }
                foreach (var product in group.Products)
                {
                    purchases.Add(new Purchase
                    {
                        Product  = product,
                        Discount = discount
                    });
                }
            }
            return(purchases);
        }
Exemple #2
0
        public IEnumerable <Purchase> CalculateCost(IEnumerable <string> productSkus)
        {
            if (productSkus.Count() == 0)
            {
                return(new List <Purchase>());
            }

            var products = GetProducts(productSkus);
            var combos   = GetCombos(products);

            if (combos.Count == 0)
            {
                return(new List <Purchase>());
            }
            ComboCost       cost      = CalculateMinCost(combos);
            List <Purchase> purchases = GetPurchases(cost);

            return(purchases);
        }