コード例 #1
0
        private GroupRuleSetBuilder(RuleEngineContext.RuleEngineContext context)
        {
            _ruleparser     = RuleExpressionParserFactory.CreateStringRuleParser <TEntity>();
            _propertyparser = RuleExpressionParserFactory.CreateStringPropertyRuleParser <TEntity>();

            _groupKeyExpressionParser = RuleExpressionParserFactory.CreateGroupKeyParser <TEntity>();
            this._context             = context;
        }
コード例 #2
0
        private RulesetBuilder(RuleEngineContext.RuleEngineContext context)
        {
            _context = context;

            _ruleparser     = RuleExpressionParserFactory.CreateStringRuleParser <TEntity>();
            _propertyparser = RuleExpressionParserFactory
                              .CreateStringPropertyRuleParser <TEntity>();
        }
コード例 #3
0
        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);
        }