public virtual async Task <QueryResult <TEntity> > GetPageAsync(QueryObjectParams queryObjectParams, List <Expression <Func <TEntity, object> > > includes) { IQueryable <TEntity> query = _dbSet; query = includes.Aggregate(query, (current, include) => current.Include(include)); return(await GetOrderedPageQueryResultAsync(queryObjectParams, query).ConfigureAwait(false)); }
public virtual async Task <QueryResult <TEntity> > GetPageAsync(QueryObjectParams queryObjectParams, Expression <Func <TEntity, bool> > predicate) { IQueryable <TEntity> query = _dbSet; if (predicate != null) { query = query.Where(predicate); } return(await GetOrderedPageQueryResultAsync(queryObjectParams, query).ConfigureAwait(false)); }
public async Task <IActionResult> GetPaged([FromBody] QueryObjectParams queryObject) { var queryResult = await _unitOfWork.OrderRepository.GetPageAsync(queryObject).ConfigureAwait(false); if (queryResult is null) { return(NotFound()); } var mappedOrders = _mapper.Map <IEnumerable <OrderViewModel> >(queryResult.Entities); return(Ok(new QueryResult <OrderViewModel>(mappedOrders, queryResult.TotalCount))); }
public virtual async Task <QueryResult <TEntity> > GetPageAsync <TProperty>(QueryObjectParams queryObjectParams, Expression <Func <TEntity, bool> > predicate, List <Expression <Func <TEntity, TProperty> > > includes = null) { IQueryable <TEntity> query = _dbSet; if (includes != null) { query = includes.Aggregate(query, (current, include) => current.Include(include)); } if (predicate != null) { query = query.Where(predicate); } return(await GetOrderedPageQueryResultAsync(queryObjectParams, query).ConfigureAwait(false)); }
public virtual async Task <QueryResult <TEntity> > GetPageAsync(QueryObjectParams queryObjectParams) { return(await GetOrderedPageQueryResultAsync(queryObjectParams, _dbSet).ConfigureAwait(false)); }
private IQueryable <TEntity> GetPagePrivateQuery(IQueryable <TEntity> query, QueryObjectParams queryObjectParams) { return(query.Skip((queryObjectParams.PageNumber - 1) * queryObjectParams.PageSize).Take(queryObjectParams.PageSize)); }
public virtual async Task <QueryResult <TEntity> > GetOrderedPageQueryResultAsync(QueryObjectParams queryObjectParams, IQueryable <TEntity> query) { IQueryable <TEntity> OrderedQuery = query; if (queryObjectParams.SortingParams != null && queryObjectParams.SortingParams.Count > 0) { OrderedQuery = SortingExtension.GetOrdering(query, queryObjectParams.SortingParams); } var totalCount = await query.CountAsync().ConfigureAwait(false); if (OrderedQuery != null) { var fecthedItems = await GetPagePrivateQuery(OrderedQuery, queryObjectParams).ToListAsync().ConfigureAwait(false); return(new QueryResult <TEntity>(fecthedItems, totalCount)); } return(new QueryResult <TEntity>(await GetPagePrivateQuery(_dbSet, queryObjectParams).ToListAsync().ConfigureAwait(false), totalCount)); }