private GroupRuleSetBuilder(RuleEngineContext.RuleEngineContext context) { _ruleparser = RuleExpressionParserFactory.CreateStringRuleParser <TEntity>(); _propertyparser = RuleExpressionParserFactory.CreateStringPropertyRuleParser <TEntity>(); _groupKeyExpressionParser = RuleExpressionParserFactory.CreateGroupKeyParser <TEntity>(); this._context = context; }
private RulesetBuilder(RuleEngineContext.RuleEngineContext context) { _context = context; _ruleparser = RuleExpressionParserFactory.CreateStringRuleParser <TEntity>(); _propertyparser = RuleExpressionParserFactory .CreateStringPropertyRuleParser <TEntity>(); }
public GroupRuleSetBuilder <TEntity, TKey> WithAggregateInfo <TType>(string propertyName, AggregateFunction function, string agrregateOn) { AggregatePropertyMetadata <TEntity> aggregatePropertyMetadata = null; if (function == AggregateFunction.Count) { var parser = RuleExpressionParserFactory.CreateAggregateFunctionParser <TEntity, bool>(); aggregatePropertyMetadata = new CountAggregatePropertyMetadataType <TEntity>(_context, propertyName, typeof(TType), agrregateOn, parser); } else { var parser = RuleExpressionParserFactory.CreateAggregateFunctionParser <TEntity, TType>(); aggregatePropertyMetadata = new AggregatePropertyMetadataType <TEntity, TType> (_context, propertyName, function, agrregateOn, parser); } _aggregateProps.Add(aggregatePropertyMetadata); return(this); }