public virtual async Task <PagedList <TEntity> > FindAllIncluding(IPagingFilter filter, bool asNoTracking = true, params Expression <Func <TEntity, object> >[] includeProperties) { var query = GetFindAllIncludingQueryable(asNoTracking, includeProperties); return(await query.Paginate(filter)); }
public virtual async Task <PagedList <TEntity> > FindAll(IPagingFilter filter, Expression <Func <TEntity, bool> > predicate, bool asNoTracking = true) { var query = GetFindAllQueryable(predicate, asNoTracking); return(await query.Paginate(filter)); }
public PagingFilter(IPagingFilter filter) { if (filter == null) { return; } Page = filter.Page; PerPage = filter.PerPage; }
public MqPagingFilter(IPagingFilter filter) { if (filter == null) { return; } PerPage = filter.PerPage; if (filter is MqPagingFilter) { Previous = ((MqPagingFilter)filter).Previous; } }
public static IQueryable <T> SetPaging <T>(this IQueryable <T> query, IPagingFilter filter) { if (filter.Page < 1 || filter?.Page == null) { filter.Page = 0; } else { filter.Page--; } if (filter.Size < 1 || filter?.Size == null) { filter.Page = 100; } return(query.Skip(filter.Page * filter.Size).Take(filter.Size)); }
public static IQueryable <T> SetOrdering <T>(this IQueryable <T> query, IPagingFilter filter) { if (filter.Sorts is null) { return(query); } foreach (var item in filter.Sorts) { if (query.IsOrdered()) { query = ((IOrderedQueryable <T>)query).ThenBy(item); } else { query = query.OrderBy(item); } } return(query); }
public async Task <IEnumerable <IVehicleMake> > GetPageAsync(IPagingFilter filter = null) { if (filter.SearchString != null) { var makes = Mapper.Map <IEnumerable <VehicleMakePoco> >( await Repository.GetWhere <VehicleMake>() .Where(r => r.Name.ToUpper().Contains(filter.SearchString.ToUpper())) .OrderBy(k => k.Name) .Skip((filter.PageNumber - 1) * filter.PageSize) .Take(filter.PageSize) .ToListAsync()); return(makes); } else { var makes = Mapper.Map <IEnumerable <VehicleMakePoco> >( await Repository.GetWhere <VehicleMake>() .OrderBy(k => k.Name) .Skip((filter.PageNumber - 1) * filter.PageSize) .Take(filter.PageSize) .ToListAsync()); return(makes); } }
public async Task <IEnumerable <IVehicleMake> > GetAsync(IPagingFilter filter = null) { return(await Repository.GetPageAsync(filter)); }
public virtual async Task <PagedList <TEntity> > FindAll(IPagingFilter filter, bool asNoTracking = true) { var query = GetFindAllQueryable(asNoTracking); return(await query.Paginate(filter)); }
public static IQueryable <T> SetOrderingAndPaging <T>(this IQueryable <T> query, IPagingFilter filter) { return(query.SetOrdering(filter).SetPaging(filter)); }
public static async Task <PagedList <T> > Paginate <T>(this IQueryable <T> query, IPagingFilter filter) { var count = await query.CountAsync(); if (!string.IsNullOrWhiteSpace(filter.OrderBy)) { var direction = filter.Ascending ? ListSortDirection.Ascending : ListSortDirection.Descending; query = query.Order(filter.OrderBy, direction); } var items = await query .Skip((filter.PageNumber - 1) *filter.PageSize) .Take(filter.PageSize) .ToListAsync(); return(new PagedList <T>(items, count, filter.PageNumber, filter.PageSize)); }