Esempio n. 1
0
        public INode Reduce(IRule rule, INodeContext <INode> page)
        {
            // sequence with a single item => no sequence needed
            if (page.Count == 1)
            {
                return(page.Get(0));
            }

            var result = new ProtoRule(nameof(Core.Rules.Sequence), rule => new Core.Rules.Sequence(rule.RuleName, rule.All()));

            result.AddChildren(page.GetAll().Of <ProtoRule>());

            return(result);
        }
Esempio n. 2
0
        public INode Reduce(IRule rule, INodeContext <INode> page)
        {
            // choice with a single item => no choice needed
            if (page.Count == 1)
            {
                return(page.Get(0));
            }

            var result = new ProtoRule(nameof(Core.Rules.Choice), rule => new Core.Rules.Choice(rule.RuleName, rule.All()));

            // filter out the "|" values
            result.AddChildren(page.GetAll().Of <ProtoRule>());

            return(result);
        }