public static void Test() { Customer customer = new Customer("Anna", "Kowalska"); Order order = CreateOrder(customer); ICanDiscountStrategy canDiscountStrategy = new HappyHoursCanDiscountStrategy(TimeSpan.Parse("9:30"), TimeSpan.Parse("16")); IDiscountStrategy discountStrategy = new PercentageDiscountStrategy(0.1m); // PMC> Install-Package Newtonsoft.Json string jsonDiscountStrategy = JsonConvert.SerializeObject(discountStrategy); IDiscountStrategy discountStrategy2 = JsonConvert.DeserializeObject <PercentageDiscountStrategy>(jsonDiscountStrategy); OrderDiscountCalculator discountCalculator = new OrderDiscountCalculator(canDiscountStrategy, discountStrategy); decimal discount = discountCalculator.CalculateDiscount(order); }
private static void SkinColorOrderStrategyCalculatorTest2() { Customer customer = new Customer("Jan", "Nowak", ConsoleColor.Red); Order order = CreateOrder(customer); // IDiscountStrategy discountStrategy = new HappyHoursPercentageDiscountStrategy(TimeSpan.Parse("9:00"), TimeSpan.Parse("17:00"), 0.1m); ICanDiscountStrategy canDiscountStrategy = new SkinColorDiscountStrategy(ConsoleColor.Red); ICalculateDiscountStrategy calculateDiscount = new PercentageDiscountStrategy(0.1m); SecondOrderCalculator calculator = new SecondOrderCalculator(canDiscountStrategy, calculateDiscount); decimal discount = calculator.CalculateDiscount(order); Console.WriteLine($"Original amount: {order.Amount:C2} Discount: {discount:C2}"); }