//Determine which strategy to apply based on the customer type IDiscountStrategy discountStrategy = DiscountFactory.GetDiscountStrategyForCustomerType(customerType); //Apply the discount selected to each product, and return the discounted collection return events.ApplyDiscount(discountStrategy);