private decimal CalculateDiscount(IReadOnlyCollection <BasketItem> basketItems, Product offerProduct1, Product offerProduct2) { var totalProduct1 = TotalProducts(basketItems, offerProduct1); var product1Pairs = totalProduct1 / 2; var product2Price = _productPriceProvider.GetPrice(offerProduct2.ProductName); var product2Discount = product2Price / 100 * _discountPercentage; var totalProduct2 = TotalProducts(basketItems, offerProduct2); if (product1Pairs >= totalProduct2) { return(totalProduct2 * product2Discount); } return(product1Pairs * product2Discount); }
private decimal GetRunningTotal() { return(BasketItems.Sum(item => _productPriceProvider.GetPrice(item.Product.ProductName) * item.Quantity)); }
private decimal CalculateDiscount(IEnumerable <BasketItem> basketItems) { var discountSeed = TotalProducts(basketItems) / (_minimumEligibleProducts + 1); return(_productPriceProvider.GetPrice(_offerProduct.ProductName) * discountSeed); }