public ActionResult Search(TripLstViewModel model, int page = 1) { if (!this.ModelState.IsValid) { return this.View(model); } if (model.ItemsPerPage < 0 && model.ItemsPerPage > WebApplicationConstants.MaxItemsPerPage) { model.ItemsPerPage = DefaultItemsPerPage; } var dayOfLeaving = model.DateOfLeaving; int filteredTripsCount = this.TripServices .GetDynamicFIltered(model.FromId, model.ToId, model.Passengers, model.DateOfLeaving, model.DriverName, model.MinPrice, model.MaxPrice, model.OrderBy, model.Sort) .Count(); int totalPages = (int)Math.Ceiling(filteredTripsCount / (double)model.ItemsPerPage); int tripsToSkip = (page - 1) * model.ItemsPerPage; var trips = this.TripServices .GetDynamicFIltered(model.FromId, model.ToId, model.Passengers, model.DateOfLeaving, model.DriverName, model.MinPrice, model.MaxPrice, model.OrderBy, model.Sort) .Skip(tripsToSkip) .Take(model.ItemsPerPage) .To<TripListViewModel>() .ToList(); var weekDays = this.DateProvider .GetWeekAhedDays(dayOfLeaving) .To<WeekDayViewModel>() .ToList(); model.Date = dayOfLeaving; model.WeekDays = weekDays; model.Trips = trips; model.TotalPages = totalPages; model.CurrentPage = page; model.TotalFoundTrips = filteredTripsCount; model.SelectedDateAsString = model.DateOfLeaving.ToString("yyyy-MM-dd"); this.FillRequiredListInformation(model); return this.View("~/Views/Trip/List.cshtml", model); }
private void FillRequiredListInformation(TripLstViewModel viewModel) { // viewModel.LuggageSpcaceSelectList = this.TripProvider.GetLuggageSpcaceSelectList(); viewModel.ItemPerPageSelectList = this.TripProvider.GetTripsPerPageSelectList(); viewModel.TownsSelectList = this.TownProvider.GetCachedTowns(); viewModel.OrderBySelectListWithSomeNameThatWillNotDoAnyConflictsBecauseMvcIsPlayingAJokeWithAllOfUs = this.TripProvider.GetOrderBySelectList(viewModel.OrderBy); viewModel.AvailableSeatsSelectList = this.TripProvider.GetAvailableSeatsSelectList(); }
public ActionResult List(string calendarDate, int page = 1) { TripLstViewModel viewModel = new TripLstViewModel(); this.FillRequiredListInformation(viewModel); var day = this.DateProvider.CovertDateFromStringToDateTime(calendarDate); int allTripsCount = this.TripServices.GetForDay(day).Count(); int totalPages = (int)Math.Ceiling(allTripsCount / (double)DefaultItemsPerPage); int tripsToSkip = (page - 1) * DefaultItemsPerPage; var trips = this.TripServices .GetForDay(day) .Skip(tripsToSkip) .Take(DefaultItemsPerPage) .To<TripListViewModel>() .ToList(); var weekDays = this.DateProvider .GetWeekAhedDays(day) .To<WeekDayViewModel>() .ToList(); viewModel.Date = day; viewModel.WeekDays = weekDays; viewModel.Trips = trips; viewModel.TotalPages = totalPages; viewModel.CurrentPage = page; viewModel.TotalFoundTrips = allTripsCount; return this.View(viewModel); }