public IActionResult PageSize(int pagesize)
        {
            var builder = new VacationGridBuilder(this.httpCtxAccessor.HttpContext.Session);

            builder.CurrentRoute.PageSize = pagesize;

            builder.SaveRouteSegments();
            return(RedirectToAction("List", builder.CurrentRoute));
        }
        /// <summary>
        /// The List view action handling filtering/sorting for the list.
        /// </summary>
        /// <param name="values">The values.</param>
        /// <returns>The List view</returns>
        public IActionResult List(GridDTO values)
        {
            var builder = new VacationGridBuilder(this.httpCtxAccessor.HttpContext.Session, values, nameof(Vacation.Location.Name));

            var options = new VacationQueryOptions()
            {
                Includes         = "Location, Activities.Activity, Accommodation",
                OrderByDirection = builder.CurrentRoute.SortDirection,
                PageNumber       = builder.CurrentRoute.PageNumber,
                PageSize         = builder.CurrentRoute.PageSize
            };

            options.Sort(builder);

            var vacationViewModel = new VacationListViewModel()
            {
                Vacations    = data.Vacations.List(options),
                CurrentRoute = builder.CurrentRoute,
                TotalPages   = builder.GetTotalPages(data.Vacations.Count)
            };

            return(View(vacationViewModel));
        }