public ActionResult Search(Flight flight)
        {
            DateTime fDate     = flight.Time.Date;
            var      flghts    = _context.Flights.Where(f => f.Origin == flight.Origin && f.Destination == flight.Destination && DbFunctions.TruncateTime(f.Time) == DbFunctions.TruncateTime(fDate)).ToList();
            var      viewModel = new SearchFlightViewModel
            {
                Flights = flghts
            };

            return(View(viewModel));
        }
Esempio n. 2
0
        public IActionResult ChooseFlight(SearchFlightViewModel model)
        {
            ///chỗ ni còn sai------> kiểm tra điều kiện
            var cart = SessionHelper.GetObjFromJson <SummaryBookingViewModel>(HttpContext.Session, Common.SESSIONSUMMARY_NAME);

            cart.Class = model.IdClass;
            SessionHelper.SetObjAsJson(HttpContext.Session, Common.SESSIONSUMMARY_NAME, cart);
            BookingQuery.AddTicketIntoSummary(HttpContext.Session, model.DeparId, true);
            BookingQuery.AddTicketIntoSummary(HttpContext.Session, model.ReturnId, false);
            return(RedirectToAction("FillImformation"));
        }
Esempio n. 3
0
        public ActionResult SearchFlight(SearchFlightViewModel searchFlightViewModel)
        {
            var listOfCountryCode = new List <SelectListItem>
            {
                new SelectListItem {
                    Text = "KUL (Kuala Lumpur)", Value = "KUL"
                },
                new SelectListItem {
                    Text = "BKK (Bangkok)", Value = "BKK"
                },
                new SelectListItem {
                    Text = "ICN (Seoul)", Value = "ICN"
                },
                new SelectListItem {
                    Text = "HND (Tokyo)", Value = "HND"
                },
                new SelectListItem {
                    Text = "DXB (Dubai)", Value = "DXB"
                },
                new SelectListItem {
                    Text = "KBP (Kiev)", Value = "KBP"
                },
                new SelectListItem {
                    Text = "PEK (Beijing)", Value = "PEK"
                },
                new SelectListItem {
                    Text = "SIN (Singapore)", Value = "SIN"
                }
            };

            searchFlightViewModel.AirportCode = listOfCountryCode;

            var today  = DateTime.Today;
            var search = db.Flights.Where(f => f.DepartureTime > today);

            if (!string.IsNullOrEmpty(searchFlightViewModel.Origin))
            {
                search = search.Where(f => f.Origin == searchFlightViewModel.Origin);
            }

            if (!string.IsNullOrEmpty(searchFlightViewModel.Destination))
            {
                search = search.Where(f => f.Destination == searchFlightViewModel.Destination);
            }

            searchFlightViewModel.FlightList = search.OrderBy(f => f.DepartureTime).ToList();

            return(View(searchFlightViewModel));
        }
Esempio n. 4
0
        public async Task <IActionResult> SearchFlight(SearchFlightViewModel model)
        {
            if (!model.RoundTrip)
            {
                ModelState.Remove("ReturnDate");
            }

            if (ModelState.IsValid)
            {
                var departFlight = from f in _context.Flights
                                   where f.Origin == model.Origin &&
                                   (f.Destination == model.Destination) &&
                                   (f.DepartureDateTime.Date == model.DepartureDate)
                                   select f;
                SearchFlightResultViewModel result = new SearchFlightResultViewModel
                {
                    Passenger   = model.Passenger,
                    Depart      = await departFlight.ToListAsync(),
                    Origin      = model.Origin,
                    Destination = model.Destination,
                    RoundTrip   = model.RoundTrip,
                    DepartDate  = model.DepartureDate,
                };

                if (model.RoundTrip)
                {
                    var returnFlight = from f in _context.Flights
                                       where f.Origin == model.Destination &&
                                       (f.Destination == model.Origin) &&
                                       (f.DepartureDateTime.Date == model.ReturnDate)
                                       select f;
                    result.Return = await returnFlight.ToListAsync();

                    result.ReturnDate = model.ReturnDate;
                }

                return(View(nameof(SearchFlightResult), result));
            }

            //has error fallback
            return(View(model));
        }
        // GET: SearchFlight
        public ActionResult Index(SearchFlightViewModel searchFlightViewModel)
        {
            var result = (from f in db.tblFlights.ToList()
                          join fs in db.tblFlightSchedules.ToList() on f.ID equals fs.FlightID
                          join r in db.tblRoutes.ToList() on fs.RouteID equals r.ID
                          join ff in db.tblFares.ToList() on new { flightId = f.ID, routeId = r.ID, passengertype = 2 } equals new { flightId = ff.FlightID, routeId = ff.RouteID, passengertype = ff.PassengerTypeID }
                          join c in db.tblClasses on ff.ClassID equals c.ID
                          join fseat in db.tblFlightSeats on new { flightId = f.ID, classid = c.ID } equals new { flightId = fseat.FlightID, classid = fseat.ClassID }
                          where GetBookedSeat(fs.ID, c.ID) < fseat.NoOfSeat
                          select new FlightDetail
            {
                FlightId = f.ID,
                FlightScheduleId = fs.ID,
                FlightNo = f.FlightNo,
                FlightName = f.FlightName,
                FlightLogo = f.FlightLogo,
                From = r.Departure,
                To = r.Arrival,
                Depart = fs.DepartureDateTime,
                Arrive = fs.ArrivalDateTime,
                Fare = ff.Amount.ToString(),
                ChildFare = GetChildFare(f.ID, c.ID, r.ID),
                AllowedBaggage = ff.AllowedBaggage.ToString(),
                ClassID = c.ID.ToString(),
                Class = c.Class
            }).ToList();

            var departFlightListDetail = new List <FlightDetail>();
            var returnFlightListDetail = new List <FlightDetail>();

            //depart flight List
            departFlightListDetail = result;
            if (!string.IsNullOrEmpty(searchFlightViewModel.From))
            {
                departFlightListDetail = departFlightListDetail.Where(r => r.From.ToLower().Contains(searchFlightViewModel.From.Trim().ToLower())).ToList();
            }

            if (!string.IsNullOrEmpty(searchFlightViewModel.To))
            {
                departFlightListDetail = departFlightListDetail.Where(r => r.To.ToLower().Contains(searchFlightViewModel.To.Trim().ToLower())).ToList();
            }

            if (!string.IsNullOrEmpty(searchFlightViewModel.Depart.Value.ToLongDateString()))
            {
                departFlightListDetail = departFlightListDetail.Where(r => r.Depart.ToShortDateString() == searchFlightViewModel.Depart.Value.ToShortDateString()).ToList();
            }
            searchFlightViewModel.departFlightDetail = departFlightListDetail;

            //return flightList
            if (!string.IsNullOrEmpty(searchFlightViewModel.FlightType) && searchFlightViewModel.FlightType == "2")
            {
                returnFlightListDetail = result;
                if (!string.IsNullOrEmpty(searchFlightViewModel.From))
                {
                    returnFlightListDetail = returnFlightListDetail.Where(r => r.From.ToLower().Contains(searchFlightViewModel.To.Trim().ToLower())).ToList();
                }

                if (!string.IsNullOrEmpty(searchFlightViewModel.To))
                {
                    returnFlightListDetail = returnFlightListDetail.Where(r => r.To.ToLower().Contains(searchFlightViewModel.From.Trim().ToLower())).ToList();
                }

                if (!string.IsNullOrEmpty(searchFlightViewModel.Depart.Value.ToLongDateString()) && !string.IsNullOrEmpty(searchFlightViewModel.Return.Value.ToLongDateString()))
                {
                    returnFlightListDetail = returnFlightListDetail.Where(r => r.Depart.ToShortDateString() == searchFlightViewModel.Return.Value.ToShortDateString()).ToList();
                }
            }
            searchFlightViewModel.returnFlightDetail = returnFlightListDetail;


            //join ff in db.tblFares.ToList() on f.ID equals ff.FlightID && ff.RouteID equals r.ID

            return(View(searchFlightViewModel));
        }
 public ActionResult Search(SearchFlightViewModel searchFlightViewModel)
 {
     return(RedirectToAction("Index", "SearchFlight", searchFlightViewModel));
 }