/// <summary>
        /// Load the database into Airport/Airplane/Airroute objects
        /// </summary>
        private void Initialise()
        {
            try
            {
                //initialise objects
                m_SimTime = 0;
                int[] airportList;
                m_airports = new List<Airport>();
                m_airportAllocationQueue = new Queue<Airport>();

                //create new database object
                ATCDatabase.ATCDB initialDB = new ATCDatabase.ATCDB();

                //get number of airports
                m_numAirports = initialDB.GetNumAirports();

                //get list of airports
                airportList = initialDB.GetAirportIDList();

                //iterate through each airport and get all the data associated with the airport and instanciate those objects
                foreach (int airportID in airportList)
                {
                    //declarations
                    string airportName;
                    int[] airplaneList, airRouteList;
                    Queue<Airplane> landedList = new Queue<Airplane>();
                    Queue<AirRoute> departingRoutes = new Queue<AirRoute>();
                    List<AirRoute> incomingRoutes = new List<AirRoute>();

                    //get all airplane ids in current airport
                    airplaneList = initialDB.GetAirplaneIDsForAirport(airportID);

                    //get all the departing AirRoutes for the airport
                    airRouteList = initialDB.GetDepartingAirRouteIDsForAirport(airportID);

                    //go through each airplane, get it's info and construct the object
                    foreach (int airplaneID in airplaneList)
                    {
                        string planeType;
                        double cruisingKPH, fuelConsPerHour;
                        int initAirportID;
                        initialDB.LoadAirplane(airplaneID, out planeType, out cruisingKPH, out fuelConsPerHour, out initAirportID);
                        landedList.Enqueue(new Airplane(airplaneID, planeType, cruisingKPH, fuelConsPerHour, airportID));
                    }

                    //go through each departing AirRoute and construct the AirRoute object
                    foreach (int airRouteID in airRouteList)
                    {
                        int fromAirportID, toAirportID;
                        double distanceKM;
                        initialDB.LoadAirRoute(airRouteID, out fromAirportID, out toAirportID, out distanceKM);
                        departingRoutes.Enqueue(new AirRoute(airRouteID, fromAirportID, toAirportID, distanceKM));
                    }

                    //go through each airport, get all the departing AirRoutes and if the destination is the current airport
                    //then add it to the incomingRoutes list
                    foreach (int id in airportList)
                    {
                        int[] routeList = initialDB.GetDepartingAirRouteIDsForAirport(id);
                        foreach (int airRouteID in routeList)
                        {
                            int fromAirportID, toAirportID;
                            double distanceKM;
                            initialDB.LoadAirRoute(airRouteID, out fromAirportID, out toAirportID, out distanceKM);
                            if (toAirportID == airportID)
                            {
                                incomingRoutes.Add(new AirRoute(airRouteID, fromAirportID, toAirportID, distanceKM));
                            }
                        }

                    }

                    //finally load the airport name and then add it to the list of airports to be allocated
                    initialDB.LoadAirport(airportID, out airportName);
                    m_airportAllocationQueue.Enqueue(new Airport(airportID, airportName, landedList, departingRoutes, incomingRoutes));
                }
            }
            catch (Exception exception)
            {
                System.Console.WriteLine(exception.Message);
                Initialise();
            }
        }
Exemplo n.º 2
0
 //Constructor.
 public ATCBizControllerMasterImpl()
 {
     m_db     = new ATCDatabase.ATCDB(); //Create database object.
     m_routes = new List <AirRoute>();
     System.Console.WriteLine("ATC Master running");
 }
Exemplo n.º 3
0
        /// <summary>
        /// Load the database into Airport/Airplane/Airroute objects
        /// </summary>
        private void Initialise()
        {
            try
            {
                //initialise objects
                m_SimTime = 0;
                int[] airportList;
                m_airports = new List <Airport>();
                m_airportAllocationQueue = new Queue <Airport>();

                //create new database object
                ATCDatabase.ATCDB initialDB = new ATCDatabase.ATCDB();

                //get number of airports
                m_numAirports = initialDB.GetNumAirports();

                //get list of airports
                airportList = initialDB.GetAirportIDList();

                //iterate through each airport and get all the data associated with the airport and instanciate those objects
                foreach (int airportID in airportList)
                {
                    //declarations
                    string           airportName;
                    int[]            airplaneList, airRouteList;
                    Queue <Airplane> landedList      = new Queue <Airplane>();
                    Queue <AirRoute> departingRoutes = new Queue <AirRoute>();
                    List <AirRoute>  incomingRoutes  = new List <AirRoute>();

                    //get all airplane ids in current airport
                    airplaneList = initialDB.GetAirplaneIDsForAirport(airportID);

                    //get all the departing AirRoutes for the airport
                    airRouteList = initialDB.GetDepartingAirRouteIDsForAirport(airportID);

                    //go through each airplane, get it's info and construct the object
                    foreach (int airplaneID in airplaneList)
                    {
                        string planeType;
                        double cruisingKPH, fuelConsPerHour;
                        int    initAirportID;
                        initialDB.LoadAirplane(airplaneID, out planeType, out cruisingKPH, out fuelConsPerHour, out initAirportID);
                        landedList.Enqueue(new Airplane(airplaneID, planeType, cruisingKPH, fuelConsPerHour, airportID));
                    }

                    //go through each departing AirRoute and construct the AirRoute object
                    foreach (int airRouteID in airRouteList)
                    {
                        int    fromAirportID, toAirportID;
                        double distanceKM;
                        initialDB.LoadAirRoute(airRouteID, out fromAirportID, out toAirportID, out distanceKM);
                        departingRoutes.Enqueue(new AirRoute(airRouteID, fromAirportID, toAirportID, distanceKM));
                    }

                    //go through each airport, get all the departing AirRoutes and if the destination is the current airport
                    //then add it to the incomingRoutes list
                    foreach (int id in airportList)
                    {
                        int[] routeList = initialDB.GetDepartingAirRouteIDsForAirport(id);
                        foreach (int airRouteID in routeList)
                        {
                            int    fromAirportID, toAirportID;
                            double distanceKM;
                            initialDB.LoadAirRoute(airRouteID, out fromAirportID, out toAirportID, out distanceKM);
                            if (toAirportID == airportID)
                            {
                                incomingRoutes.Add(new AirRoute(airRouteID, fromAirportID, toAirportID, distanceKM));
                            }
                        }
                    }

                    //finally load the airport name and then add it to the list of airports to be allocated
                    initialDB.LoadAirport(airportID, out airportName);
                    m_airportAllocationQueue.Enqueue(new Airport(airportID, airportName, landedList, departingRoutes, incomingRoutes));
                }
            }
            catch (Exception exception)
            {
                System.Console.WriteLine(exception.Message);
                Initialise();
            }
        }