예제 #1
0
        /// <summary>
        /// Invokes named rule specified by rule path.
        /// </summary>
        /// <typeparam name="T">Result type</typeparam>
        /// <param name="rulePath">Path of the named rule</param>
        /// <param name="arguments">Arguments required by the named rule</param>
        /// <returns>Execution result, or default(T) if the rule does not exist</returns>
        public T InvokeNamedRule <T>(string rulePath, Dictionary <string, object> arguments)
        {
            string rulePointPath;
            string ruleName;

            if (RulePathHelper.ExtractNamedRulePath(rulePath, out rulePointPath, out ruleName))
            {
                return(InvokeNamedRule <T>(rulePointPath, ruleName, arguments));
            }
            else
            {
                return(default(T));
            }
        }
예제 #2
0
        /// <summary>
        /// Gets a named rule by a given path.
        /// </summary>
        /// <param name="rulePath">The path of the named rule you want to get</param>
        /// <returns>The named rule if it exists; otherwise, null.</returns>
        public NamedRule GetNamedRule(string rulePath)
        {
            if (String.IsNullOrEmpty(rulePath))
            {
                throw new ArgumentNullException("rulePath"); // NOXLATE
            }

            string rulePointPath;
            string ruleName;

            if (RulePathHelper.ExtractNamedRulePath(rulePath, out rulePointPath, out ruleName))
            {
                RulePoint theRulePoint = GetRulePoint(rulePointPath);
                if (theRulePoint != null)
                {
                    return(theRulePoint.GetNamedRule(ruleName));
                }
            }
            return(null);
        }