// GET: BackOffice/Trips public ActionResult Index(TripSearchViewModel model) { IEnumerable <Trip> liste = db.Trips.Include(t => t.Agency).Include(t => t.Destination); if (model.Destination != null) { liste = liste.Where(x => x.Destination.Country.ToLower().Contains(model.Destination.ToLower())); } if (model.MaxPrice != null) { liste = liste.Where(x => x.Price <= model.MaxPrice); } if (model.MinPrice != null) { liste = liste.Where(x => x.Price >= model.MinPrice); } if (model.MaxDate != null) { liste = liste.Where(x => x.ReturnDate <= model.MaxDate); } if (model.MinDate != null) { liste = liste.Where(x => x.DepartureDate >= model.MinDate); } model.Trips = liste.ToList(); return(View(model)); }
public PartialViewResult SubmitTripSearch(TripSearchViewModel viewModel) { var resultsViewModel = new TripSearchResultsViewModel(); var results = _searchService.SearchTripCards(viewModel); resultsViewModel.CountTrips = _searchService.GetCountAlTrips(viewModel.SearchTerm); foreach (var result in results) { var trip = _tripCardService.GetTripCardContent(result.ItemId.ToString()); resultsViewModel.Results.Add(new TripSearchResultViewModel() { Id = result.ItemId.ToString(), Title = result.Title, Description = result.Description, ImgUrl = trip.Image.Src, StartDate = result.StartDate, EndDate = result.EndDate, Price = result.Price }); } return(PartialView("~/Areas/ATV/Views/Search/_TripSearchResult.cshtml", resultsViewModel)); }
//search method public async Task <IActionResult> TripSearch(bool preTrip, int?page, string search) { var User = await GetCurrentUserAsync(); List <Trip> trips = await _context.Trip .Include(t => t.Continent) .Where(t => t.UserId == User.Id && t.IsPreTrip == preTrip && (t.Title.Contains(search) || t.Location.Contains(search) || t.Continent.Name.Contains(search))) .OrderByDescending(t => t.DateFinished) .ToListAsync(); TripSearchViewModel viewModel = new TripSearchViewModel(); if (preTrip == false) { Pager pager = new Pager(trips.Count(), page); viewModel.Trips = trips.Skip((pager.CurrentPage - 1) * pager.PageSize) .Take(pager.PageSize).ToList(); viewModel.Pager = pager; viewModel.Search = search; return(View("FinishedTripSearch", viewModel)); } else { viewModel.Trips = trips; viewModel.Search = search; return(View("PlannedTripSearch", viewModel)); } }
public async Task <IActionResult> Search() { var fromDestination = int.Parse(this.Request.Query["FromDestinationId"]); var toDestination = int.Parse(this.Request.Query["ToDestinationId"]); var date = DateTime.TryParse(this.Request.Query["DateOfDeparture"], out DateTime dateOfDeparture); var count = this.tripsService.Count(); this.ViewData["Destinations"] = SelectListGenerator.GetAllDestinations(this.destinationsService); TripSearchViewModel searchResultViewModel = await this.destinationsService.GetSearchResultAsync(fromDestination, toDestination, dateOfDeparture); return(this.PartialView("_SearchResultPartial", searchResultViewModel)); }
//Results of searching all trips public async Task <IActionResult> TripSearchAll(int?page, string Search, TripSearchViewModel viewModel) { List <Trip> trips = await _context.Trip .Include(t => t.Continent) .Include(t => t.User) .Where(t => t.IsPreTrip == false && (t.Title.Contains(viewModel.Search) || t.Location.Contains(viewModel.Search) || t.Continent.Name.Contains(viewModel.Search))) .OrderByDescending(t => t.DateFinished) .ToListAsync(); Pager pager = new Pager(trips.Count(), page); viewModel.Trips = trips.Skip((pager.CurrentPage - 1) * pager.PageSize) .Take(pager.PageSize).ToList(); viewModel.Pager = pager; return(View(viewModel)); }
public IEnumerable <TripSearchResult> SearchTripCards(TripSearchViewModel searchTerm) { IEnumerable <TripSearchResult> trips = null; if (searchTerm.SearchTerm == null) { trips = _searchRepository.Search <TripSearchResult>( q => q.Path.StartsWith("/sitecore/content/Sam/ATV/Data/Trips/")) .Skip((searchTerm.PageCurrent - 1) * searchTerm.PageSize) .Take(searchTerm.PageSize); } else { trips = _searchRepository.Search <TripSearchResult>( q => q.Title.Contains(searchTerm.SearchTerm) && q.Path.StartsWith("/sitecore/content/Sam/ATV/Data/Trips/")) .Skip((searchTerm.PageCurrent - 1) * searchTerm.PageSize) .Take(searchTerm.PageSize); } return(trips); }
public async Task <TripSearchViewModel> GetSearchResultAsync(int fromDestinationId, int toDestinationId, DateTime?dateOfDeparture) { var fromDestination = await this.unitOfWork.Destinations.All().Where(x => x.Id == fromDestinationId).FirstOrDefaultAsync(); var toDestination = await this.unitOfWork.Destinations.All().Where(x => x.Id == toDestinationId).FirstOrDefaultAsync(); var trips = this.unitOfWork.Trips.All() .Where(x => x.FromDestinationName == fromDestination.Name && x.ToDestinationName == toDestination.Name) .To <TripDetailsViewModel>() .ToList(); if (dateOfDeparture != null) { trips.Where(x => x.DateOfDeparture == dateOfDeparture); } var serachResultViewModel = new TripSearchViewModel { Trips = trips, DateOfDeparture = dateOfDeparture, }; return(serachResultViewModel); }