Example #1
0
        public WonkaBreRulesEngine(StringBuilder psRules,
                                   Dictionary <string, WonkaBreSource> poSourceMap,
                                   Dictionary <string, WonkaBreSource> poCustomOpBlockchainSources,
                                   IMetadataRetrievable piMetadataSource = null,
                                   bool pbAddToRegistry = true)
        {
            if ((psRules == null) || (psRules.Length <= 0))
            {
                throw new WonkaBreException("ERROR!  Provided rules are null or empty!");
            }

            UsingOrchestrationMode = true;
            AddToRegistry          = pbAddToRegistry;

            RefEnvHandle = Init(piMetadataSource);

            WonkaBreXmlReader BreXmlReader = new WonkaBreXmlReader(psRules, piMetadataSource, this);

            foreach (string sKey in poCustomOpBlockchainSources.Keys)
            {
                WonkaBreSource oTargetSource = poCustomOpBlockchainSources[sKey];

                BreXmlReader.AddCustomOperator(sKey, oTargetSource);
            }

            RuleTreeRoot = BreXmlReader.ParseRuleTree();
            SourceMap    = poSourceMap;
            CustomOpMap  = poCustomOpBlockchainSources;
            AllRuleSets  = BreXmlReader.AllParsedRuleSets;

            this.RetrieveCurrRecord = AssembleCurrentProduct;
        }
Example #2
0
        public WonkaBreRulesEngine(StringBuilder psRules, IMetadataRetrievable piMetadataSource = null, bool pbAddToRegistry = false)
        {
            if ((psRules == null) || (psRules.Length <= 0))
            {
                throw new WonkaBreException("ERROR!  Provided rules are null or empty!");
            }

            UsingOrchestrationMode = false;
            AddToRegistry          = pbAddToRegistry;

            RefEnvHandle = Init(piMetadataSource);

            WonkaBreXmlReader BreXmlReader = new WonkaBreXmlReader(psRules, piMetadataSource, this);

            RuleTreeRoot = BreXmlReader.ParseRuleTree();
            AllRuleSets  = BreXmlReader.AllParsedRuleSets;
        }
Example #3
0
        public WonkaBreRulesEngine(string psRulesFilepath, IMetadataRetrievable piMetadataSource = null, bool pbAddToRegistry = false)
        {
            if (String.IsNullOrEmpty(psRulesFilepath))
            {
                throw new WonkaBreException("ERROR!  Provided rules file is null or empty!");
            }

            if (!File.Exists(psRulesFilepath))
            {
                throw new WonkaBreException("ERROR!  Provided rules file(" + psRulesFilepath + ") does not exist on the filesystem.");
            }

            UsingOrchestrationMode = false;
            AddToRegistry          = pbAddToRegistry;

            RefEnvHandle = Init(piMetadataSource);

            WonkaBreXmlReader BreXmlReader = new WonkaBreXmlReader(psRulesFilepath, piMetadataSource, this);

            RuleTreeRoot = BreXmlReader.ParseRuleTree();
            AllRuleSets  = BreXmlReader.AllParsedRuleSets;
        }
Example #4
0
        public WonkaBreRulesEngine(StringBuilder psRules,
                                   Dictionary <string, WonkaBreSource> poSourceMap,
                                   IMetadataRetrievable piMetadataSource = null,
                                   bool pbAddToRegistry = false)
        {
            if ((psRules == null) || (psRules.Length <= 0))
            {
                throw new WonkaBreException("ERROR!  Provided rules are null or empty!");
            }

            UsingOrchestrationMode = true;
            AddToRegistry          = pbAddToRegistry;

            RefEnvHandle = Init(piMetadataSource);

            WonkaBreXmlReader BreXmlReader = new WonkaBreXmlReader(psRules, piMetadataSource, this);

            RuleTreeRoot = BreXmlReader.ParseRuleTree();
            SourceMap    = poSourceMap;
            AllRuleSets  = BreXmlReader.AllParsedRuleSets;

            this.RetrieveCurrRecord = AssembleCurrentProduct;
        }