//Used to insert flgiths and generate airports associated with that major city (since there can exist two of them per city) public static void InsertFlightIntoDatabase(int distance, Major_City c, Major_City c2, DatabaseClassDataContext database) { int fetch = 0; int fetch2 = 0; if (database.Airports.Where(x => x.cityName.Equals(c.name)).ToList().Count > 1) { fetch = _random.Next(0, 2); } if (database.Airports.Where(x => x.cityName.Equals(c2.name)).ToList().Count > 1) { fetch2 = _random.Next(0, 2); } PersonalPopuplation.Airport departureAirport = database.Airports.Where(x => x.cityName.Equals(c.name)).ToList()[fetch]; PersonalPopuplation.Airport arrivalAirport = database.Airports.Where(x => x.cityName.Equals(c2.name)).ToList()[fetch2]; string deptAirportName = departureAirport.Name; string arrivalAirportName = arrivalAirport.Name; //Boolean Check to ensure that no two flights are saved with the same city, this was to prevent //Overpopulating the database //if (database.FLIGHTs.Where(x => x.departure_airport.Equals(deptAirportName) && x.arrival_airport.Equals(arrivalAirportName)).ToList().Count> 0 ) //{ // FLIGHT f = database.FLIGHTs.Where(x => x.departure_airport.Equals(deptAirportName) && x.arrival_airport.Equals(arrivalAirportName)).ToList()[0]; // Console.WriteLine("Flight Exists!"); // Console.WriteLine(f.arrival_time); // Console.WriteLine(f.departure_time); // return; //} //Generates Flight Number for Flight's ID string flightid = generateFlightNumber(); //Loops until a unique one is generated while (database.Flights.SingleOrDefault(x => x.Flight_id.Equals(flightid)) != null) { flightid = generateFlightNumber(); Console.WriteLine("Generating New Unique Flight Number"); } //Randomly generate a departure time DateTime deptTime = DateTime.Now.AddMinutes(30 * _random.Next(0, 4)); PersonalPopuplation.Flight flight = new PersonalPopuplation.Flight() { Flight_id = flightid, airport_arrival_name = arrivalAirportName, airport_departure_name = deptAirportName, departure_time = deptTime, arrival_time = deptTime.AddMinutes(((double)distance / (double)926) * _random.Next(600, 1000)), distance = distance }; database.Flights.InsertOnSubmit(flight); database.SubmitChanges(); }
//Extracted functionality from insert flight in database //Used for path generation public static Flight generateFlight(DatabaseClassDataContext database, Airport a1, Airport a2, int distance) { string flightid = generateFlightNumber(); while (database.Flights.SingleOrDefault(x => x.Flight_id.Equals(flightid)) != null) { flightid = generateFlightNumber(); Console.WriteLine("Generating New Unique Flight Number"); } DateTime deptTime = DateTime.Now.AddMinutes(30 * _random.Next(0, 4)); PersonalPopuplation.Flight flight = new PersonalPopuplation.Flight() { Flight_id = flightid, airport_arrival_name = a1.Name, airport_departure_name = a2.Name, departure_time = deptTime, arrival_time = deptTime.AddMinutes((((double)distance / (double)926) * _random.Next(600, 1000)) * 3), distance = distance }; return(flight); }