Ejemplo n.º 1
0
        public IEnumerable <ProductInBasket> ApplyOffer(IEnumerable <ProductInBasket> productsInBasket)
        {
            var totalNumberOfProducts = productsInBasket.Where(product => product.Product.Name == _productName).Select(product => product.Quantity).Sum();
            var fourthMilkHasDiscount = totalNumberOfProducts / _nthItemFree;

            return(OfferApplier.ApplyDiscountToProduct(productsInBasket, _productName, _discounter(fourthMilkHasDiscount)));
        }
        public IEnumerable <ProductInBasket> ApplyOffer(IEnumerable <ProductInBasket> productsInBasket)
        {
            int totalNumberOfFirstProduct  = productsInBasket.Where(product => product.Product.Name == _firstProduct).Select(product => product.Quantity).Sum();
            int totalNumberOfSecondProduct = productsInBasket.Where(product => product.Product.Name == _secondProduct).Select(product => product.Quantity).Sum();

            int numberOfDiscountsPossible = totalNumberOfFirstProduct / 2;

            int totalNumberOfDiscountsThatCanBeApplied = Math.Min(numberOfDiscountsPossible, totalNumberOfSecondProduct);

            return(OfferApplier.ApplyDiscountToProduct(productsInBasket, _secondProduct, _discounter(totalNumberOfDiscountsThatCanBeApplied)));
        }