public static IRuleSet LoadRuleSet() { var rules = Directory.GetFiles(_basePath, "*.xml", SearchOption.AllDirectories) .Select(x => new RuleSetFactory.RuleFile(Path.GetFileName(x), null, File.ReadAllBytes(x))); var rs = RuleSetFactory.FromRuleFiles(rules); return(rs); }
private static IRuleSet BuildRuleset() { // getting file paths string[] paths = { "SampleValidationRule.xml", "SampleProcedureRule.xml" }; // building RuleFile based on the path var files = paths.Select(f => new RuleSetFactory.RuleFile(f, string.Empty, File.ReadAllBytes(f))); // creating ruleset return(RuleSetFactory.FromRuleFiles(files)); }
private static void RunFromRuleSet() { // get list of lofic files var list = new[] { "CarsDiscountFlow.xml", "YearDiscount.xml" }; // create a set of file var ruleFiles = list.Select(x => new RuleSetFactory.RuleFile(x, null, File.ReadAllBytes(x))); var rs = RuleSetFactory.FromRuleFiles(ruleFiles); var engine = RuntimeEngine.FromRuleSet(rs, "CarsDiscountFlow.xml"); var result = engine.Run(ConnectionString); var cars = result.Context.VariableContainer["cars"] as IEnumerable; foreach (IDictionary <string, object> car in cars) { Console.WriteLine("{0} {1} {2} Discount: {3}", car["Made"], car["Model"], car["Year"], car["Discount"]); } }