/// <summary> /// Given a Queryable and a QueryableEvaluator realizes the query /// </summary> /// <param name="queryable">IQueryable</param> /// <param name="evaluator">IQueryableEvaluator</param> /// <returns>Data resulting from the query</returns> public override IPagedQueryResult <TResult> Run(IQueryable <TEntity> queryable, IQueryableEvaluator evaluator) { queryable = this.RunQuery(queryable); this.count = evaluator.Count(queryable); queryable = this.Sort(queryable); queryable = this.Paginate(queryable); var result = this.GenerateResult(queryable, evaluator); return(result); }