/// <inheritdoc />
        public override IMappedQuerySpecification <TEntity, TTarget> And <TTarget>(IMappedQuerySpecification <TEntity, TTarget> specification) where TTarget : class
        {
            Expression <Func <TEntity, bool> >?criteria = this.ResolveCriteria(specification);

            return(new BaseMappedQuerySpecification <TEntity, TTarget>()
            {
                Criteria = criteria,
                OrderBy = specification.OrderBy.ToList(),
                Skip = specification.Skip,
                Take = specification.Take,
                Selector = specification.Selector,
                PostAction = specification.PostAction
            });
        }
예제 #2
0
 public IMappedQuerySpecification <TEntity, TEntity> And(IMappedQuerySpecification <TEntity, TEntity> specification)
 {
     throw new NotImplementedException();
 }
 /// <summary>
 /// Apply given specification on the <see cref="Queryable"/> collection and return results.
 /// </summary>
 /// <param name="queryable"></param>
 /// <param name="specification"></param>
 /// <param name="defaultSort">Výchozí řadící kritérium.</param>
 /// <typeparam name="TType"></typeparam>
 /// <typeparam name="TTarget"></typeparam>
 /// <returns></returns>
 public static IReadOnlyList <TTarget> ResolveSpecification <TType, TTarget>(
     this IQueryable <TType> queryable,
     IMappedQuerySpecification <TType, TTarget>?specification,
     (SpecificationSortType sortType, Expression <Func <TType, object> > selector) defaultSort
 /// <summary>
 /// Apply given specification on the <see cref="Queryable"/> collection.
 /// </summary>
 /// <param name="queryable"></param>
 /// <param name="specification"></param>
 /// <typeparam name="TType"></typeparam>
 /// <typeparam name="TTarget"></typeparam>
 /// <returns></returns>
 public static IQueryable <TType> ApplyQuerySpecification <TType, TTarget>(this IQueryable <TType> queryable, IMappedQuerySpecification <TType, TTarget> specification)
     where TType : class
     where TTarget : class
 {
     return(queryable.ApplySpecification(specification));
 }