private static void RunDiscountScenario() { var basicInfo = "{\"name\": \"Dishant\",\"email\": \"[email protected]\",\"creditHistory\": \"good\",\"country\": \"india\",\"loyalityFactor\": 3,\"totalPurchasesToDate\": 10000}"; var orderInfo = "{\"totalOrders\": 5,\"recurringItems\": 2}"; var telemetryInfo = "{\"noOfVisitsPerMonth\": 10,\"percentageOfBuyingToVisit\": 15}"; var converter = new ExpandoObjectConverter(); dynamic input1 = JsonConvert.DeserializeObject <ExpandoObject>(basicInfo, converter); dynamic input2 = JsonConvert.DeserializeObject <ExpandoObject>(orderInfo, converter); dynamic input3 = JsonConvert.DeserializeObject <ExpandoObject>(telemetryInfo, converter); var inputs = new dynamic[] { input1, input2, input3 }; var repository = new RulesRepository(); var discountService = new DiscountService(repository); var discountOffered = discountService.CalculateDiscount(inputs); var discountMessage = discountOffered == 0m ? "The user is not eligible for any discount." : $"Discount offered is {discountOffered * 100}% over MRP."; Console.WriteLine(discountMessage); }
private static void RunRetirementScenario() { var repository = new RulesRepository(); var service = new RetirementService(repository); var employee = new Employee { LengthOfServiceInDays = 25, IsOverridden = true }; var isEligible = service.IsEligible(employee); Console.WriteLine($"Eligible for Retirement?: {isEligible}"); }