public ActionResult Details(int id, int page = 1) { var trip = this.trips.GetById(id) .To <TripResponseModel>() .FirstOrDefault(); if (trip == null) { return(this.RedirectToAction("NotFound", "Error")); } trip.Participants = trip.Participants .Where(x => !x.IsDeleted) .ToList(); var commentsPerPage = 5; var allComments = trip.Comments.Count(); var totalPages = (int)Math.Ceiling(allComments / ((decimal)commentsPerPage)); if (page - 1 >= totalPages) { page = totalPages; } if (page - 1 < 0) { page = 1; } var itemsToSkip = (page - 1) * commentsPerPage; var comments = this.comments.GetAll() .Where(x => x.TripId == id) .OrderByDescending(x => x.CreatedOn) .Skip(itemsToSkip) .Take(commentsPerPage) .To <CommentViewModel>() .ToList(); var pagableComments = new PagableCommentsViewModel { All = comments, CurrentPage = page, TotalPages = totalPages, Trip = trip }; return(View(pagableComments)); }
public ActionResult Details(int id, int page = 1) { var trip = this.trips.GetById(id) .To<TripResponseModel>() .FirstOrDefault(); if (trip == null) { return this.RedirectToAction("NotFound", "Error"); } trip.Participants = trip.Participants .Where(x => !x.IsDeleted) .ToList(); var commentsPerPage = 5; var allComments = trip.Comments.Count(); var totalPages = (int)Math.Ceiling(allComments / ((decimal)commentsPerPage)); if (page - 1 >= totalPages) { page = totalPages; } if (page - 1 < 0) { page = 1; } var itemsToSkip = (page - 1) * commentsPerPage; var comments = this.comments.GetAll() .Where(x => x.TripId == id) .OrderByDescending(x => x.CreatedOn) .Skip(itemsToSkip) .Take(commentsPerPage) .To<CommentViewModel>() .ToList(); var pagableComments = new PagableCommentsViewModel { All = comments, CurrentPage = page, TotalPages = totalPages, Trip = trip }; return View(pagableComments); }