//method loads inital flight data
 public void LoadData()
 {
     flightList[0] = new Flight(101, "Phoenix", "Seattle");
     flightCount++;
     flightList[1] = new Flight(102, "Mesa", "Austin");
     flightCount++;
     flightList[2] = new Flight(103, "San Francisco", "Chicago");
     flightCount++;
 }
        //loads initial passenger data
        public void LoadPassengers(Flight[] flightList)
        {
            flightList[0].PassengerManifest[0] = new Passenger("Kelly", "Condon", "218");
            flightList[0].PassengerCount++;
            flightList[0].PassengerManifest[1] = new Passenger("Tylor", "Cammarato", "314");
            flightList[0].PassengerCount++;
            flightList[0].PassengerManifest[2] = new Passenger("Alyssa", "Rizzo", "827");
            flightList[0].PassengerCount++;

            flightList[1].PassengerManifest[0] = new Passenger("Jennifer", "Chavez", "489");
            flightList[1].PassengerCount++;
            flightList[1].PassengerManifest[1] = new Passenger("John", "Quinn", "198");
            flightList[1].PassengerCount++;
            flightList[1].PassengerManifest[2] = new Passenger("Kristine", "Quinn", "199");
            flightList[1].PassengerCount++;

            flightList[2].PassengerManifest[0] = new Passenger("Justin", "McCoy", "917");
            flightList[2].PassengerCount++;
            flightList[2].PassengerManifest[1] = new Passenger("Ray", "Ruanto", "643");
            flightList[2].PassengerCount++;
            flightList[2].PassengerManifest[2] = new Passenger("Donald", "Marovich", "042");
            flightList[2].PassengerCount++;
        }
        //method displays the passenger manifest for selected flight
        public void DisplayPassengers(Flight[] flightList, int flight)
        {
            Console.WriteLine("Passenger Manifest for Flight {0} - {1} to {2}\n", flightList[flight].FlightNumber, flightList[flight].OriginCity, flightList[flight].DestinationCity);
            for (int i = 0; i < flightList[flight].PassengerCount; i++)
            {
                if (flightList[flight].PassengerManifest[i].SecurityFlag == true)
                    Console.WriteLine("{0} {1}\t\tLoyalty #: {2}\t\tFLAGGED", flightList[flight].PassengerManifest[i].FirstName, flightList[flight].PassengerManifest[i].LastName, flightList[flight].PassengerManifest[i].LoyaltyNumber);
                else
                    Console.WriteLine("{0} {1}\t\tLoyalty #: {2}", flightList[flight].PassengerManifest[i].FirstName, flightList[flight].PassengerManifest[i].LastName, flightList[flight].PassengerManifest[i].LoyaltyNumber);
            }

            Console.Write("\nPress any key to continue . . . ");
            Console.ReadKey();
        }//end DisplayPassengers method
        }//end method CheckPassenger

        //performs NSA security check
        public void SecurityCheck(Flight[] flightList, int flight)
        {
            Flight tempFlight = flightList[flight];
            Passenger[] tempPassengers = tempFlight.PassengerManifest;

            for (int i = 0; i < tempFlight.PassengerCount; i++)
            {
                tempFlight.PassengerManifest[i].SecurityFlag = false;
            }//end for loop

            FlaggedPassenger[] flaggedPassengers = checkTSA.RunSecurityCheck(tempFlight.PassengerManifest, tempFlight.PassengerCount);


            for (int i = 0; i < flaggedPassengers.Length; i++)
            {
                for (int j = 0; j < tempFlight.PassengerCount; j++)
                {
                    //checks the flagged passenger list against the passenger manifest
                    if (flaggedPassengers[i].FirstName ==
                        tempPassengers[j].FirstName
                        &&
                        flaggedPassengers[i].LastName ==
                        tempPassengers[j].LastName
                        )
                    {
                        tempFlight.PassengerManifest[j].SecurityFlag = true;
                    }//end if statement
                }//end inner for loop
            }//end outer for loop

            Console.Write("Security Check Successful.\n\nPress Any Key to Continue . . . ");
            Console.ReadKey();
        }//end SecurityCheck method
        }//end AddPassenger method

        //method checks each flight for a passenger
        public void CheckPassenger(Flight[] flightList, int flightCount)
        {
            bool foundPassenger = false;
            Console.Write("First Name: ");
            string fName = Console.ReadLine();
            Console.Write("Last Name: ");
            string lName = Console.ReadLine();
            for (int i = 0; i < flightCount; i++)
            {
                for (int j = 0; j < flightList[i].PassengerCount; j++)
                {
                    if (flightList[i].PassengerManifest[j].FirstName == fName && flightList[i].PassengerManifest[j].LastName == lName)
                    {
                        Console.WriteLine("{0} {1} is on Flight {2} - {3} to {4}", fName, lName, flightList[i].FlightNumber, flightList[i].OriginCity, flightList[i].DestinationCity);
                        foundPassenger = true;
                        break;
                    }//end if statement
                }//end inner for loop
            }//end outer for loop
            if (foundPassenger == false)
                Console.WriteLine("Sorry, no passenger by that name seems to booked.");
            Console.Write("\nPress Any Key to Continue . . . ");
            Console.ReadLine();
        }//end method CheckPassenger
        }//end DisplayPassengers method

        //method adds passengers to the selected flight
        public void AddPassenger(Flight[] flightList, int flight)
        {
            bool addPassengerMethodRunning = true;

            while (addPassengerMethodRunning)
            {
                string newFirstName;
                string newLastName;
                string newLoyaltyNum;
                Console.Write("First Name: ");
                newFirstName = Console.ReadLine();
                Console.Write("Last Name: ");
                newLastName = Console.ReadLine();
                Console.Write("Loyalty #: ");
                newLoyaltyNum = Console.ReadLine();

                flightList[flight].PassengerManifest[flightList[flight].PassengerCount] = new Passenger(newFirstName, newLastName, newLoyaltyNum);
                flightList[flight].PassengerCount++;

                Console.Write("\nAdd another passenger? (Y/N) ");
                switch (Console.ReadLine().ToLower())
                {
                    case "y":
                    case "yes":
                        break;
                    case "n":
                    case "no":
                    default:
                        addPassengerMethodRunning = false;
                        break;
                }//end switch statement
            }//end while statement
        }//end AddPassenger method
        //method adds a flight to the flight list
        public void AddFlight()
        {
            bool addFlightMenuRunning = true;
            int flightNumber = 0;
            string origin = "";
            string destination = "";
            string userInput = "";

            while (addFlightMenuRunning)
            {
                DisplayBanner();
               
                Console.Write("Flight Number: ");
                userInput = Console.ReadLine();
                if (Int32.TryParse(userInput, out flightNumber) == true) //won't let a user enter a non numeric value for a flight number
                {
                    flightNumber = Convert.ToInt32(userInput);
                    if (flightNumber >= 1) //flight number can't be negative
                    {
                        Console.Write("Origin City: ");
                        origin = Console.ReadLine();
                        Console.Write("Destination City: ");
                        destination = Console.ReadLine();
                        Flight tempFlight = new Flight(flightNumber, origin, destination);
                        flightList[flightCount] = tempFlight;
                        flightCount++;
                        Console.Write("Add another flight? (Y/N) ");
                        userInput = Console.ReadLine();
                        switch (userInput.ToLower())
                        {
                            case "y":
                            case "yes":
                                break;
                            case "n":
                            case "no":
                                addFlightMenuRunning = false;
                                break;
                        }//end switch statement
                    }//end inner if statement
                    else
                    {
                        Console.Write("Invalid Number Entered. \n\tPress Any Key to Try Again, or Q to quit . . . ");
                        userInput = Console.ReadLine();
                        switch (userInput.ToLower())
                        {
                            case "q":
                            case "quit":
                                addFlightMenuRunning = false;
                                break;
                            default:
                                break;
                        }//end switch statement
                    }
                }//end outer if statement
                else
                {
                    Console.Write("Invalid Number Entered. \n\tPress Any Key to Try Again, or Q to quit . . . ");
                    userInput = Console.ReadLine();
                    switch(userInput.ToLower())
                    {
                        case "q":
                        case "quit":
                            addFlightMenuRunning = false;
                            break;
                        default:
                            break;
                    }//end switch statement
                }//end else statement

            }//end while loop
        }//end AddFlight method
        }//end main method

        //displays a list of flights
        public void DisplayFlights(Flight[] flightList)
        {
            DisplayBanner();
            Console.WriteLine("{0,20}", "Current Flights\n");
            for (int i = 0; i < flightCount; i++)
            {
                Console.WriteLine(String.Format("{0,5}.) {1} {2,15} {3,10} {4,10}", i + 1, flightList[i].FlightNumber, flightList[i].OriginCity, "--->", flightList[i].DestinationCity));
            }
        }