protected virtual async Task <PagedSearchResult <TDto> > GetPagedSearchEnumerableAsync( PagedSearchParameter parameter, IQueryable <TEntity> queryable) { var result = new PagedSearchResult <TDto>(); queryable = string.IsNullOrEmpty(parameter.OrderByFieldName) ? GetOrderedQueryableEntity(queryable, "Id", FrameworkCoreConstant.SortOrder.Ascending) : GetOrderedQueryableEntity(queryable, parameter.OrderByFieldName, parameter.SortOrder); result.Count = await queryable.CountAsync(); var entityList = parameter.PageSize == -1 ? await queryable.ToListAsync() : await queryable.Skip(parameter.PageIndex *parameter.PageSize).Take(parameter.PageSize).ToListAsync(); foreach (var entity in entityList) { var dto = new TDto(); EntityToDto(entity, dto); result.Result.Add(dto); } return(result); }
public virtual async Task <PagedSearchResult <TDto> > PagedSearchAsync(PagedSearchParameter parameter) { var dbSet = this.Context.Set <TEntity>(); var queryable = string.IsNullOrEmpty(parameter.Filters) ? dbSet.AsQueryable() : dbSet.Where(parameter.Filters); queryable = string.IsNullOrEmpty(parameter.Keyword) ? queryable : GetKeywordPagedSearchQueryable(queryable, parameter.Keyword); return(await GetPagedSearchEnumerableAsync(parameter, queryable)); }
public override async Task <PagedSearchResult <RentalDto> > PagedSearchAsync(PagedSearchParameter parameter) { var dbSet = this.Context.Set <ComRental>() .Include(item => item.Book) .Include(item => item.Customer); var queryable = string.IsNullOrEmpty(parameter.Filters) ? dbSet.AsQueryable() : dbSet.Where(parameter.Filters); queryable = string.IsNullOrEmpty(parameter.Keyword) ? queryable : GetKeywordPagedSearchQueryable(queryable, parameter.Keyword); return(await GetPagedSearchEnumerableAsync(parameter, queryable)); }