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); }
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); }