Example #1
0
        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);
        }
Example #2
0
        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;
        }