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);
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
        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"]);
            }
        }