public ITerminalNode <T> BuildTerminalNode <T>(BuilderContext context, IRuleFact <T> fact) where T : class { // if (context.AlphaSource != null) // BuildJoinNode(context); var factIndexMap = context.CreateIndexMap(fact); // var terminalNode = new TerminalNode<T>(context.BetaSource, factIndexMap); // return terminalNode; throw new NotImplementedException(); }
public RuleCondition <T> GetRuleCondition <T>(IRuleFact <T> ruleFact, Expression <Func <T, bool> > conditionExpression) where T : class { if (conditionExpression == null) { throw new ArgumentNullException(nameof(conditionExpression)); } if (conditionExpression.Parameters.Count != 1) { throw new ArgumentException($"Expected 1 parameter, found {conditionExpression.Parameters.Count}", nameof(conditionExpression)); } var condition = new RuleCondition <T>(ruleFact, conditionExpression); return(condition); }
public IndexMap CreateIndexMap(IRuleFact fact) { return(IndexMap.CreateMap(_parameters, _parameters)); }
public RuleCondition(IRuleFact <T> ruleFact, Expression <Func <T, bool> > conditionExpression) { _ruleFact = ruleFact; _conditionExpression = conditionExpression; }