/// <summary> /// Returns a list of movies ordered by number of votes and title with pagination. /// </summary> /// <param name="predicate"></param> /// <param name="pageNumber"></param> /// <param name="pageSize"></param> /// <returns></returns> public Pagination <Movie> GetMoviesWithPagination( Expression <Func <Movie, bool> > predicate, int pageNumber, int pageSize) { var query = _context.Set <Movie>() .Include(x => x.CastOfMovies) .ThenInclude(x => x.Cast) .Include(x => x.RatingOfMovies) .OrderByDescending(x => x.RatingOfMovies.Count()) .ThenBy(x => x.Title) .AsNoTracking(); var skipNumber = Pagination <Movie> .CalculateSkipNumber(pageNumber, pageSize); var totalItemCount = query.Where(predicate).Count(); var movies = query.Where(predicate).Skip(skipNumber).Take(pageSize).ToList(); return(new Pagination <Movie> ( items: movies, totalItemCount: totalItemCount, pageSize: pageSize, currentPage: pageNumber )); }
public Pagination <Fruit> GetFruitsWithPagination(int pageNumber, int pageSize) { IQueryable <Fruit> query = _dbSet.OrderBy(x => x.Name); var skipNumber = Pagination <Fruit> .CalculateSkipNumber(pageNumber, pageSize); var totalItemCount = query.Count(); var fruits = query.Skip(skipNumber).Take(pageSize).ToList(); return(new Pagination <Fruit> ( items: fruits, totalItemCount: totalItemCount, pageSize: pageSize, currentPage: pageNumber )); }
public Pagination <User> GetUsersWithPagination(Expression <Func <User, bool> > predicate, int pageNumber, int pageSize) { IQueryable <User> query = _dbSet.Where(predicate).OrderBy(x => x.FirstName); var skipNumber = Pagination <User> .CalculateSkipNumber(pageNumber, pageSize); var totalItemCount = query.Count(); var users = query.Skip(skipNumber).Take(pageSize).ToList(); return(new Pagination <User> ( items: users, totalItemCount: totalItemCount, pageSize: pageSize, currentPage: pageNumber )); }
public async Task <Pagination <User> > GetUsersIncludingRoleWithPaginationAsync(Expression <Func <User, bool> > predicate, int pageNumber, int pageSize) { IQueryable <User> query = await Task.FromResult(GenerateQuery(filter : predicate, orderBy : x => x.OrderBy(y => y.FirstName), include : x => x.Role)); var skipNumber = Pagination <User> .CalculateSkipNumber(pageNumber, pageSize); var totalItemCount = await query.CountAsync(); var users = await query.Skip(skipNumber).Take(pageSize).ToListAsync(); return(new Pagination <User> ( items: users, totalItemCount: totalItemCount, pageSize: pageSize, currentPage: pageNumber )); }
public async Task <Pagination <Movie> > GetIncludingCastWithPaginationAsync(Expression <Func <Movie, bool> > predicate, int pageNumber, int pageSize) { var query = dbContext.Set <Movie>() .Include(x => x.CastOfMovies).ThenInclude(x => x.Cast) .Include(x => x.MoviesClassification) .OrderByDescending(x => x.MoviesClassification.Count()).ThenBy(x => x.Name) .AsNoTracking(); var skipNumber = Pagination <Movie> .CalculateSkipNumber(pageNumber, pageSize); var totalItemCount = await query.CountAsync(); var movies = await query.Skip(skipNumber).Take(pageSize).ToListAsync(); return(new Pagination <Movie> ( items: movies, totalItemCount: totalItemCount, pageSize: pageSize, currentPage: pageNumber )); }
/// <summary> /// Returns a list of users ordered by name with pagination. /// </summary> /// <param name="predicate"></param> /// <param name="pageNumber"></param> /// <param name="pageSize"></param> /// <returns></returns> public Pagination <User> GetUsersWithPagination( Expression <Func <User, bool> > predicate, int pageNumber, int pageSize) { var query = _context.Set <User>() .Include(x => x.Role) .OrderBy(x => x.Name) .AsNoTracking(); var skipNumber = Pagination <User> .CalculateSkipNumber(pageNumber, pageSize); var totalItemCount = query.Where(predicate).Count(); var users = query.Where(predicate).Skip(skipNumber).Take(pageSize).ToList(); return(new Pagination <User> ( items: users, totalItemCount: totalItemCount, pageSize: pageSize, currentPage: pageNumber )); }