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