public AggregateQueryStrategy(params Expression <Func <T, bool> >[] predicates) { Check.NotNull(predicates, "predicates"); var queryStrategies = predicates.Select(predicate => new ExpressionSpecificationQueryStrategy <T>(predicate)); _InternalAggregateStrategy = new AggregateQueryStrategy(queryStrategies); }
public IQueryable <T> GetEntities <T>(Expression <Func <T, bool> > predicate, params IQueryStrategy[] queryStrategies) where T : class { Check.NotNull(predicate, "predicate"); Check.NotNull(queryStrategies, "queryStrategies"); var aggregateQueryStrategy = new AggregateQueryStrategy(new ExpressionSpecificationQueryStrategy <T>(predicate)); aggregateQueryStrategy.AddRange(queryStrategies); return(GetEntities <T>(aggregateQueryStrategy)); }
public static IQueryable <T> AddQueryStrategy <T>(this IQueryable <T> query, params IQueryStrategy[] strategies) where T : class { Check.NotNull(query, "query"); Check.NotNull(strategies, "strategies"); var singleRepository = new SingleQueryRepository <T>(query); var aggregateStrategy = new AggregateQueryStrategy(strategies); aggregateStrategy.QueryableRepository = singleRepository; return((IQueryable <T>)aggregateStrategy.GetQueryableEntities <T>(null)); }
public static IEnumerable <T> AddQueryStrategy <T>(this IEnumerable <T> enumerable, params IQueryStrategy[] strategies) where T : class { Check.NotNull(enumerable, "enumerable"); Check.NotNull(strategies, "strategies"); var singleRepository = new SingleQueryRepository <T>(enumerable.AsQueryable()); var aggregateStrategy = new AggregateQueryStrategy(strategies); aggregateStrategy.QueryableRepository = singleRepository; return(aggregateStrategy.GetQueryableEntities <T>(null).AsEnumerable()); }
public AggregateQueryStrategy(params IQueryStrategy[] strategies) { Check.NotNull(strategies, "strategies"); _InternalAggregateStrategy = new AggregateQueryStrategy(strategies); }
protected AggregateQueryStrategy() { _InternalAggregateStrategy = new AggregateQueryStrategy(); }