public ActionResult Index(int id = 1)
        {
            FeedBackListViewModel viewModel;
            if (this.HttpContext.Cache["Feedback page_" + id] != null)
            {
                viewModel = (FeedBackListViewModel)this.HttpContext.Cache["Feedback page_" + id];
            }
            else
            {
                var page = id;
                var allItemsCount = this.feedbacks.All().Count();
                var totalPages = (int)Math.Ceiling(allItemsCount / (decimal)ItemsPerPage);
                var itemsToSkip = (page - 1) * ItemsPerPage;
                var feedbacks = this.feedbacks.All()
                    .OrderBy(x => x.CreatedOn)
                    .ThenBy(x => x.Id)
                    .Skip(itemsToSkip)
                    .Take(ItemsPerPage)
                    .Project().To<FeedbackViewModel>().ToList();

                viewModel = new FeedBackListViewModel()
                {
                    CurrentPage = page,
                    TotalPages = totalPages,
                    FeedBacks = feedbacks
                };

                this.HttpContext.Cache["Feedback page_" + id] = viewModel;
            }

            return this.View(viewModel);
        }
Ejemplo n.º 2
0
        public ActionResult Index(int id = 1)
        {
            FeedBackListViewModel viewModel;

            if (this.HttpContext.Cache["Feedback page_" + id] != null)
            {
                viewModel = (FeedBackListViewModel)this.HttpContext.Cache["Feedback page_" + id];
            }
            else
            {
                var page          = id;
                var allItemsCount = this.feedbacks.All().Count();
                var totalPages    = (int)Math.Ceiling(allItemsCount / (decimal)ItemsPerPage);
                var itemsToSkip   = (page - 1) * ItemsPerPage;
                var feedbacks     = this.feedbacks.All()
                                    .OrderBy(x => x.CreatedOn)
                                    .ThenBy(x => x.Id)
                                    .Skip(itemsToSkip)
                                    .Take(ItemsPerPage)
                                    .Project().To <FeedbackViewModel>().ToList();

                viewModel = new FeedBackListViewModel()
                {
                    CurrentPage = page,
                    TotalPages  = totalPages,
                    FeedBacks   = feedbacks
                };

                this.HttpContext.Cache["Feedback page_" + id] = viewModel;
            }

            return(this.View(viewModel));
        }