Example #1
0
        // 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));
        }
Example #2
0
        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));
            }
        }
Example #4
0
        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));
        }
Example #6
0
        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);
        }