static void Main(string[] args) { ShoppingCart cart = new ShoppingCart(new DeliveryCostCalculate(5, 2, 2.99)); //Add Category Category categoryFood = new Category("Food"); Category categorySport = new Category("Sport"); //Category categoryBasketball = new Category("Basketball Boots"); //Food Product Product banana = new Product("Banana", 20, categoryFood); Product apricot = new Product("Apricot", 10, categoryFood); //Sport Product Product skateboard = new Product("skateboard", 30, categorySport); Product ball = new Product("ball", 20, categorySport); //add product cart.AddItem(ball, 3); cart.AddItem(skateboard, 3); cart.AddItem(banana, 2); cart.AddItem(apricot, 2); //campanign Campaign campaign1 = new Campaign(categorySport, 20, 2, new DiscountTypeRate { }); Campaign campaign2 = new Campaign(categorySport, 40, 2, new DiscountTypeAmount { }); Campaign campaign3 = new Campaign(categoryFood, 50, 2, new DiscountTypeRate { }); cart.ApplyDiscounts(campaign1, campaign2, campaign3); //coupon var coupon = new Coupon(50, 10, DiscountType.Rate); cart.ApplyCoupon(coupon); double totalAmountAfterDiscount = cart.GetTotalAmountAfterDiscounts(); double campaignDiscount = cart.GetCampaignDiscount(); double deliveryCost = cart.GetDeliveryCost(); double couponDiscount = cart.GetCouponDiscount(); Console.WriteLine(cart.Print()); Console.ReadLine(); }