public double GetCouponDiscount() { if (AppliedCoupon == null) { return(default(double)); } var cartTotal = LineItems.Sum(a => a.Product.UnitPrice * a.Quantity) - GetCampaignDiscount(); return(_couponCalculator.CalculateFor(AppliedCoupon, cartTotal)); }
public double GetCampaignDiscount() { if (AppliedCampaigns.Any()) { foreach (var appliedCampaign in AppliedCampaigns.OrderByDescending(a => a.AmountOfDiscount)) { var applicableLineItems = LineItems.Where(a => a.Product.Category.Equals(appliedCampaign.Category)).ToList(); if (applicableLineItems.Count <= appliedCampaign.MinimumItemQuantity) { continue; } var applicableLineItemsCartTotal = applicableLineItems.Sum(a => a.Product.UnitPrice * a.Quantity); return(_campaignCalculator.CalculateFor(appliedCampaign, applicableLineItemsCartTotal)); } } return(default(double)); }