public void TotalCostTShirt(TeeShirt shirt)
 {
     foreach (var variation in variations)
     {
         variation.Cost(shirt);
         Console.WriteLine($"TShirt cost after applying {variation.GetType().Name} is: {shirt.Price}");
     }
     Console.WriteLine("Total price : {0}", shirt.Price);
     paymentMethod.Pay(shirt.Price);
 }
Esempio n. 2
0
        public void Cost(TeeShirt shirt)
        {
            switch (shirt.Size)
            {
            case Size.XS: shirt.Price += 9.5m; break;

            case Size.S: shirt.Price += 8.3m; break;

            case Size.M: shirt.Price += 2.8m; break;

            case Size.L: shirt.Price += 6.9m; break;

            case Size.XL: shirt.Price += 5.6m; break;

            case Size.XXL: shirt.Price += 4.6m; break;

            default: break;
            }
        }
Esempio n. 3
0
        public void Cost(TeeShirt shirt)
        {
            switch (shirt.Color)
            {
            case Color.BLUE: shirt.Price += 0.5m; break;

            case Color.GREEN: shirt.Price += 0.6m; break;

            case Color.INDIGO: shirt.Price += 0.7m; break;

            case Color.ORANGE: shirt.Price += 0.7m; break;

            case Color.RED: shirt.Price += 0.8m; break;

            case Color.VIOLET: shirt.Price += 0.2m; break;

            case Color.YELLOW: shirt.Price += 0.3m; break;

            default: break;
            }
        }
        public void Cost(TeeShirt shirt)
        {
            switch (shirt.Fabric)
            {
            case Fabric.CASMERE: shirt.Price += 0.5m; break;

            case Fabric.COTTON: shirt.Price += 0.6m; break;

            case Fabric.LINEN: shirt.Price += 0.9m; break;

            case Fabric.POLYESTER: shirt.Price += 0.8m; break;

            case Fabric.RAYON: shirt.Price += 0.7m; break;

            case Fabric.SILK: shirt.Price += 1.1m; break;

            case Fabric.WOOL: shirt.Price += 1.5m; break;

            default: break;
            }
        }
        public static void BuyShirt()
        {
            List <VariationStrategy> variations = new List <VariationStrategy>()
            {
                new ColorVariation(),
                new SizeVariation(),
                new FabricVariation()
            };

            Color  color  = ChooseColor();
            Fabric fabric = ChooseFabric();
            Size   size   = ChooseSize();

            TeeShirt     shirt = new TeeShirt(color, size, fabric);
            EshopContext eshop = new EshopContext(variations);

            PaymentMethods paymentMethods = ChoosePaymentMethod();

            eshop.SelectPaymentMethod(paymentMethods);
            eshop.TotalCostTShirt(shirt);
        }