public override object CreateNewInstance(SelectItem item)
        {
            Debug.Assert(item.Value is NamedRule);
            NamedRule namedRule = item.Value as NamedRule;

            return(InvokeNamedRule.Create(namedRule.Path));
        }
Пример #2
0
        public void ReportFailure(NamedRule rule)
        {
            //WriteLine($"- {rule.Name}");

            Head.Success = false;
            var node = stack.Pop();

            if (node.Name == RuleName.Implicit)
            {
                @implicit = false;
            }
        }
Пример #3
0
        public void ReportSuccess(NamedRule rule, string text)
        {
            Head.Success = true;
            var node = stack.Pop();

            WriteLine($@"+ {rule.Name}
{text}");

            if (node.Name == RuleName.Implicit)
            {
                @implicit = false;
            }
        }
Пример #4
0
        public void ReportHypothesis(NamedRule rule, int?index)
        {
            if (rule.Name == RuleName.Implicit)
            {
                @implicit = true;
            }

            WriteLine($"? {rule.Name}", index ?? -1);

            var node = new Node(rule.Name);

            Head.Add(node);
            stack.Push(node);
        }
Пример #5
0
        public void DefineRule(string name, Rule rule)
        {
            //var last = rule.Children.LastOrDefault();

            AssertIsNotLocked();

            if (name == RuleName.Root)
            {
                rule = rule.And(new NameRule(this, this, RuleName.Implicit));
            }

            var named = new NamedRule(this, Super, name, rule);

            rules.Add(name, named);
        }
Пример #6
0
        protected override DynamicValue Execute(CodeActivityContext context)
        {
            RuleExecutingContext executingContext = context.GetExtension <RuleExecutingContext>();

            Debug.Assert(executingContext != null);

            RuleManager ruleManager = executingContext.RuleManager;
            NamedRule   rule        = ruleManager.GetNamedRule(RulePath);

            if (rule == null)
            {
                throw new ArgumentException(String.Format(Properties.Resources.NamedRuleNotExist, RulePath));
            }

            IDictionary <string, object> parameters = executingContext.GetWorkflowInvokerArguments();

            return(ruleManager.InvokeRule <DynamicValue>(rule, parameters));
        }
Пример #7
0
        protected override void Execute(CodeActivityContext context)
        {
            RuleExecutingContext executingContext = context.GetExtension <RuleExecutingContext>();

            Debug.Assert(executingContext != null);

            RuleManager ruleManager = executingContext.RuleManager;
            NamedRule   rule        = ruleManager.GetNamedRule(RulePath);

            if (rule == null)
            {
                return;
            }

            IDictionary <string, object> parameters = executingContext.GetWorkflowInvokerArguments();

            ruleManager.InvokeRule(rule, parameters);
        }
Пример #8
0
 public void RemoveNamedRule(NamedRule theOneToRemove)
 {
     _namedrules.Remove(theOneToRemove.Path);
     _activities.Remove(theOneToRemove.ActivityID);
 }
Пример #9
0
 public void SetNamedRule(NamedRule namedRule, DynamicActivity workflow)
 {
     _namedrules[namedRule.Path]       = namedRule;
     _activities[namedRule.ActivityID] = workflow;
 }
Пример #10
0
        const string IllegalChars = "'"; // NOXLATE


        public NamedRuleContext(NamedRule namedRule, RulePointContext parentContext, RuleConfigContext ruleConfigContext)
            : this(namedRule.Name, parentContext, ruleConfigContext)
        {
        }