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); }
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; } }
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); }