public static void Main(string[] args) { _promotionEngine.AddPromotionRule(Apply3APromotion); _promotionEngine.AddPromotionRule(ApplyBCPromotion); _promotionEngine.AddPromotionRule(ApplyCDPromotion); //Feel free to add new logic to be executed for promotion //_promotionEngine.AddPromotionRule(); _productCatalog.AddProduct('A', 50); _productCatalog.AddProduct('B', 30); _productCatalog.AddProduct('C', 20); _productCatalog.AddProduct('D', 15); Checkout(new[] { 'A', 'B', 'C' }); Checkout(new[] { 'A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B', 'C' }); Checkout(new[] { 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B', 'C', 'D' }); }