private object Evaluate(IEnumerable<IGlobalMethodProvider> providers, string name, IEnumerable<object> args) {
            var ruleContext = new GlobalMethodContext {
                FunctionName = name, 
                Arguments = args.Select(v => ConvertRubyValue(v)).ToArray()
            };

            foreach (var ruleProvider in providers) {
                ruleProvider.Process(ruleContext);
            }

            return ruleContext.Result;
        }
            public void Process(GlobalMethodContext context)
            {
                var ruleContext = new ConditionEvaluationContext {
                    FunctionName = context.FunctionName,
                    Arguments    = context.Arguments.ToArray(),
                    Result       = context.Result
                };

                _conditionManager._conditions.Evaluate(ruleContext);

                context.Result = ruleContext.Result;
            }
            public void Process(GlobalMethodContext context)
            {
                var ruleContext = new RuleContext {
                    FunctionName = context.FunctionName,
                    Arguments    = context.Arguments.ToArray(),
                    Result       = context.Result
                };

                _ruleManager._ruleProviders.Process(ruleContext);

                context.Result = ruleContext.Result;
            }
        private object Evaluate(IEnumerable <IGlobalMethodProvider> providers, string name, IEnumerable <object> args)
        {
            var ruleContext = new GlobalMethodContext {
                FunctionName = name,
                Arguments    = args.Select(v => ConvertRubyValue(v)).ToArray()
            };

            foreach (var ruleProvider in providers)
            {
                ruleProvider.Process(ruleContext);
            }

            return(ruleContext.Result);
        }
Exemple #5
0
            public void Process(GlobalMethodContext context)
            {
                var ruleContext = new RuleContext
                {
                    FunctionName = context.FunctionName,
                    Arguments    = context.Arguments.ToArray(),
                    Result       = context.Result
                };

                foreach (var ruleProvider in _ruleManager._ruleProviders)
                {
                    ruleProvider.Process(ruleContext, _ruleManager._workContext);
                    if (ruleContext.Result != null)
                    {
                        break;
                    }
                }

                context.Result = ruleContext.Result;
            }
 public void Process(GlobalMethodContext context)
 {
     context.Result = _methodInvocationCallback(context.FunctionName, context.Arguments);
 }