public override Cart ApplyDiscount() { // custom processing if (Cart.LineItems.Any(x => ApplicableProductTypes.Contains(x.Product.ProductType) && x.Quantity >= MinAmountOfItems)) { foreach (var lineItem in Cart.LineItems) { lineItem.DiscountAmount += lineItem.Product.Price * DiscountPercentage * lineItem.Quantity; } } return(Cart); }
public override Cart ApplyDiscount() { // custom processing foreach (var lineItem in Cart.LineItems) { if (ApplicableProductTypes.Contains(lineItem.Product.ProductType) && lineItem.Quantity >= MinAmountOfItems) { var quantity = lineItem.Quantity - 1; lineItem.DiscountAmount = (lineItem.Product.Price * quantity) * DiscountPercentage; } } return(Cart); }
public override Cart ApplyDiscount() { // custom processing if (Cart.LineItems.Any(x => ApplicableProductTypes.Contains(x.Product.ProductType) && x.Quantity >= MinAmountOfItems)) { var product = new Product { ProductType = FreeItemType }; // should get from repository Cart.LineItems.Add(new LineItem { Product = product, Quantity = AmountOfFreeItems, DiscountAmount = product.Price * AmountOfFreeItems }); } return(Cart); }