public decimal ComputePrice(IProduct product, ICoupon coupon) { if (coupon.IsExpired()) { return(product.SellingPrice()); } var discount = product.IsOnSale() ? 0M : (product.SellingPrice() * (coupon.DiscountPercentage() / 100M)); return(product.SellingPrice() - discount); }
public decimal ComputePrice(IProduct product, ICoupon coupon) { var memberBaseDiscount = product.SellingPrice() * (Discount.BaseMemberDiscount / 100M); var memberDiscountedPrice = product.SellingPrice() - memberBaseDiscount; if (coupon.IsExpired()) { return(memberDiscountedPrice); } return(memberDiscountedPrice - (product.SellingPrice() * (coupon.DiscountPercentage() / 100M))); }