public PagedTvShowsDto GetAllWithPaging(int page, int itemsPerPage, string order, string criteria) { var allItemsCount = this.shows.All().Count(); var totalPages = (int)Math.Ceiling(allItemsCount / (decimal)itemsPerPage); var itemsToSkip = (page - 1) * itemsPerPage; var allShows = this.shows.All(); if (!string.IsNullOrEmpty(criteria)) { allShows = allShows.Where(x => x.Title.Contains(criteria) || x.Summary.Contains(criteria)); } if (order == "newest") { allShows = allShows.OrderByDescending(x => x.CreatedOn); } else if (order == "top") { allShows = allShows.OrderByDescending(m => ((float)m.Ratings.Sum(r => r.Value) / m.Ratings.Count())); } allShows = allShows .Skip(itemsToSkip) .Take(itemsPerPage); var dto = new PagedTvShowsDto { AllItemsCount = allItemsCount, TvShows = allShows, TotalPages = totalPages }; return(dto); }
public PagedTvShowsDto GetAllWithPaging(int page, int itemsPerPage, string order, string criteria) { var allItemsCount = this.shows.All().Count(); var totalPages = (int)Math.Ceiling(allItemsCount / (decimal)itemsPerPage); var itemsToSkip = (page - 1) * itemsPerPage; var allShows = this.shows.All(); if (!string.IsNullOrEmpty(criteria)) { allShows = allShows.Where(x => x.Title.Contains(criteria) || x.Summary.Contains(criteria)); } if (order == "newest") { allShows = allShows.OrderByDescending(x => x.CreatedOn); } else if (order == "top") { allShows = allShows.OrderByDescending(m => ((float)m.Ratings.Sum(r => r.Value) / m.Ratings.Count())); } allShows = allShows .Skip(itemsToSkip) .Take(itemsPerPage); var dto = new PagedTvShowsDto { AllItemsCount = allItemsCount, TvShows = allShows, TotalPages = totalPages }; return dto; }