Esempio n. 1
0
        public async Task <IActionResult> Search(SearchTripFormModel model)
        {
            if (StringExtensions.IsNullOrWhiteSpace(model.SearchText))
            {
                this.TempData.AddWarningMessage("No search text was written.");

                return(this.RedirectToAction(nameof(this.Index)));
            }

            if (!model.SearchInEndLocations && !model.SearchInStartLocations && !model.SearchInTitles)
            {
                this.TempData.AddWarningMessage("No search condition was added.");

                return(this.RedirectToAction(nameof(this.Index)));
            }

            var viewModel = new SearchTripViewModel
            {
                SearchText = model.SearchText,
                Trips      = await this.trips.FindAsync(
                    model.SearchText,
                    model.SearchInStartLocations,
                    model.SearchInEndLocations,
                    model.SearchInTitles)
            };

            return(this.View(viewModel));
        }
Esempio n. 2
0
        public void ReturnDefaulView_WithCorrectViewModel()
        {
            // Arrange
            var mockedTripService     = new Mock <ITripService>();
            var mockedMappingProvider = new Mock <IMappingProvider>();

            var controller = new SearchController(mockedTripService.Object, mockedMappingProvider.Object);

            var searchViewModel = new SearchTripViewModel();

            searchViewModel.Origin      = "Pazardzhik";
            searchViewModel.Destination = "Sofia";

            var tripsBasinInfo = new TripSearchResult();

            tripsBasinInfo.FoundTrips = new List <TripBasicInfo>();

            mockedTripService.Setup(x => x.GetTripsFor(searchViewModel.Origin, searchViewModel.Destination, 0))
            .Returns(tripsBasinInfo);


            var tripsViewModel = new List <TripBasicInfoViewModel>();

            mockedMappingProvider.Setup(x => x.Map <IEnumerable <TripBasicInfo>, IEnumerable <TripBasicInfoViewModel> >(tripsBasinInfo.FoundTrips))
            .Returns(tripsViewModel);

            // Act and Assert
            controller.WithCallTo(x => x.Result(searchViewModel))
            .ShouldRenderDefaultView()
            .WithModel(searchViewModel);
        }
Esempio n. 3
0
        public async Task <ActionResult> CustomerForm(SearchTripViewModel dummy, MainSearchBind bind, Guid[] selectedObjects)
        {
            if (Request.IsAjaxRequest() && selectedObjects.Length != 0)
            {
                List <TicketBind> tickets = new List <TicketBind>();

                foreach (Guid guid in selectedObjects)
                {
                    tickets.Add(
                        new TicketBind
                    {
                        TripId             = dummy.Id,
                        SeatId             = guid,
                        ArrivalStationId   = await _routeService.GetIdStation(bind.To),
                        DepartureStationId = await _routeService.GetIdStation(bind.From),
                        ArrivalTime        = dummy.ArrivalTime,
                        DepartureTime      = dummy.DepartureTime,
                        //TODO:
                        Price = "123"
                    }
                        );
                }
                return(PartialView(tickets));
            }

            else
            {
                return(null);
            }
        }
Esempio n. 4
0
        public async Task <ActionResult> Booking(SearchTripViewModel item, SeatSearchViewModel item2, MainSearchBind bind)
        {
            IEnumerable <AllrSeatsProcedureDTO> allrSeatsDto = await _routeService.SearchAllSeatById(item.Id, bind.From, bind.To, item2.Car);

            var allseats = _mapperTrip.Map <IEnumerable <AllrSeatsProcedureDTO>, List <AllSeatsProcedureViewModel> >(allrSeatsDto);

            foreach (var seat in allseats)
            {
                seat.Price = await _costService.GetCostOfSeatAsync(seat.PriceCoeff, item.Duration, (int)item.ArrivalTime.DayOfWeek);

                seat.SalePrice = await _costService.GetSaleCostOfSeatAsync(seat.PriceCoeff, item.Duration, (int)item.ArrivalTime.DayOfWeek);
            }

            var cars = allseats
                       .GroupBy(u => u.CarNumber)
                       .Select(grp => grp.ToList())
                       .ToList();

            AllSeatsViewModel <AllSeatsProcedureViewModel> viewModel =
                new AllSeatsViewModel <AllSeatsProcedureViewModel>
            {
                Trip = GetTripViewModel(item, item2, bind),
                Cars = cars
            };

            return(View(viewModel));
        }
Esempio n. 5
0
        public ActionResult Result(SearchTripViewModel searchModel)
        {
            var trips = this.tripService.GetTripsFor(searchModel.Origin, searchModel.Destination);

            IEnumerable <TripBasicInfoViewModel> tripsViewModel =
                this.mappingProvider.Map <IEnumerable <TripBasicInfo>, IEnumerable <TripBasicInfoViewModel> >(trips.FoundTrips);

            searchModel.Data       = tripsViewModel;
            searchModel.TotalCount = trips.TotalTrips;

            return(this.View(searchModel));
        }
Esempio n. 6
0
        public TripViewModel <SearchTripViewModel> GetTripViewModel(SearchTripViewModel item, SeatSearchViewModel item2, MainSearchBind bind)
        {
            List <SearchTripViewModel> trips = new List <SearchTripViewModel>();
            List <SeatSearchViewModel> car   = new List <SeatSearchViewModel>();

            car.Add(item2);
            item.FreeSeats = car;
            trips.Add(item);
            return(new TripViewModel <SearchTripViewModel> {
                Models = trips, Bind = bind
            });
        }
Esempio n. 7
0
        public ActionResult LoadTrips(SearchTripViewModel model, int page = 0)
        {
            if (page < 0)
            {
                page *= -1;
            }

            var trips = this.tripService.GetTripsFor(model.Origin, model.Destination, page);
            IEnumerable <TripBasicInfoViewModel> tripsViewModel =
                this.mappingProvider.Map <IEnumerable <TripBasicInfo>, IEnumerable <TripBasicInfoViewModel> >(trips.FoundTrips);

            model.Data       = tripsViewModel;
            model.TotalCount = trips.TotalTrips;

            return(this.PartialView("_TripSearchResult", model));
        }
Esempio n. 8
0
        public ActionResult Search()
        {
            var searchModel = new SearchTripViewModel();

            return(this.PartialView("_TripQuickSearch", searchModel));
        }