Exemplo n.º 1
0
        public async Task <FlightListModel> FilterFlights(Destination sd, Destination ed, Boolean t)
        {
            FlightListModel fl = new FlightListModel();

            using var cmd    = this.Connection.CreateCommand();
            cmd.CommandText  = @"SELECT * FROM Flights WHERE startDestination = '" + sd + "' AND endDestination ='" + ed + "'";
            cmd.CommandText += t ? ";" :" AND numTransfers = 0;";

            using (var reader = await cmd.ExecuteReaderAsync())
            {
                while (await reader.ReadAsync())
                {
                    var flight = new FlightModel()
                    {
                        flightId         = reader.GetInt32(0),
                        startDestination = (Destination)Enum.Parse(typeof(Destination), reader.GetString(1), true),
                        endDestination   = (Destination)Enum.Parse(typeof(Destination), reader.GetString(2), true),
                        date             = reader.GetDateTime(3),
                        numTransfers     = reader.GetInt32(4),
                        numSeats         = reader.GetInt32(5)
                    };

                    fl.FlightList.Add(flight);
                }
            }
            return(fl);
        }
Exemplo n.º 2
0
        public FlightListModel GetFlights(FlightSearchModel flightSearch)
        {
            var flightsResult = new FlightListModel();

            if (!DateTime.TryParse(flightSearch.DepartureDate, out DateTime departureDate))
            {
                throw new Exception("Failed to parse Departure date.");
            }

            if (_flightData != null && _flightData.Any())
            {
                //Roundtrip
                if (flightSearch.TripType.Equals("RT"))
                {
                    if ((!DateTime.TryParse(flightSearch.ReturnDate, out DateTime returnDate)))
                    {
                        throw new Exception("Failed to parse Return date.");
                    }

                    //Rountrip Query - Departing Flights
                    flightsResult.DepartingFlights = _flightData.Where(x => x.Origin.Equals(flightSearch.Origin, StringComparison.InvariantCultureIgnoreCase) &&
                                                                       x.Destination.Equals(flightSearch.Destination, StringComparison.InvariantCultureIgnoreCase) &&
                                                                       x.Departure.Date.Equals(departureDate.Date))
                                                     .OrderBy(x => x.Departure)
                                                     .ThenBy(x => x.FlightNumber)
                                                     .ThenBy(x => x.OriginName)
                                                     .ThenBy(x => x.Destination)
                                                     .ToList();

                    //Rountrip Query - Returning Flights
                    flightsResult.ReturningFlights = _flightData.Where(x => x.Origin.Equals(flightSearch.Destination, StringComparison.InvariantCultureIgnoreCase) &&
                                                                       x.Destination.Equals(flightSearch.Origin, StringComparison.InvariantCultureIgnoreCase) &&
                                                                       (x.Departure.Date > returnDate.Date && x.Departure.Date >= departureDate.Date))
                                                     .OrderBy(x => x.Departure)
                                                     .ThenBy(x => x.FlightNumber)
                                                     .ThenBy(x => x.OriginName)
                                                     .ThenBy(x => x.Destination)
                                                     .ToList();
                }
                else
                {
                    //One-Way
                    flightsResult.DepartingFlights = _flightData.Where(x => x.Origin.Equals(flightSearch.Origin, StringComparison.InvariantCultureIgnoreCase) &&
                                                                       x.Destination.Equals(flightSearch.Destination, StringComparison.InvariantCultureIgnoreCase) &&
                                                                       x.Departure.Date.Equals(departureDate.Date))
                                                     .OrderBy(x => x.Departure)
                                                     .ThenBy(x => x.FlightNumber)
                                                     .ThenBy(x => x.OriginName)
                                                     .ThenBy(x => x.Destination)
                                                     .ToList();
                }
            }
            return(flightsResult);
        }
Exemplo n.º 3
0
        public async Task <IActionResult> Index()
        {
            FlightListModel fl = await MySqlDatabase.GetFlights();

            return(View(fl));
        }
Exemplo n.º 4
0
        public async Task <IActionResult> showFlights(Destination sd, Destination ed, Boolean transfers)
        {
            FlightListModel flights = await MySqlDatabase.FilterFlights(sd, ed, transfers);

            return(View("Index", flights));
        }
Exemplo n.º 5
0
        public IActionResult Index()
        {
            FlightListModel flights = new FlightListModel();

            return(View(flights));
        }