예제 #1
0
        static void CheckBug()
        {
            List <IProduct> books = new List <IProduct>();

            PaperBook TolkienPaperBook1 = new PaperBook("Silmarillion", "Tolkien", 500);

            books.Add(TolkienPaperBook1);

            PaperBook TolkienPaperBook2 = new PaperBook("Hobbit", "Tolkien", 300);

            books.Add(TolkienPaperBook2);

            PaperBook ZelaznyPaperBook1 = new PaperBook("Nine Princes in Amber", "Zelazny", 400);

            books.Add(ZelaznyPaperBook1);

            DeliveryCalculator calculator   = new DeliveryCalculator();
            ActionProvider     provider     = new ActionProvider();
            ShoppingCart       cart         = new ShoppingCart(calculator, provider);
            List <IPromo>      listOfPromos = new List <IPromo> {
            };
            IPromo promo1 = new PercentDiscountPromo(20);

            listOfPromos.Add(promo1);
            IPromo promo2 = new FreeBookPromo(ZelaznyPaperBook1);

            listOfPromos.Add(promo2);
            decimal finalPrice = cart.GetTotalPrice(books, listOfPromos);

            Console.WriteLine(finalPrice);
        }
예제 #2
0
        static void PercentDiscount()
        {
            List <IProduct> books = new List <IProduct>();

            PaperBook TolkienPaperBook1 = new PaperBook("Silmarillion", "Tolkien", 500);

            books.Add(TolkienPaperBook1);

            PaperBook TolkienPaperBook2 = new PaperBook("Hobbit", "Tolkien", 300);

            books.Add(TolkienPaperBook2);

            DeliveryCalculator calculator   = new DeliveryCalculator();
            ActionProvider     provider     = new ActionProvider();
            ShoppingCart       cart         = new ShoppingCart(calculator, provider);
            IPromo             promo        = new PercentDiscountPromo(20);
            List <IPromo>      listOfPromos = new List <IPromo> {
                promo
            };
            decimal finalPrice = cart.GetTotalPrice(books, listOfPromos);

            Console.WriteLine(finalPrice);
        }