Example #1
0
        /// <summary>
        /// Reperisce il piano di volo dai server di IVAO
        /// </summary>
        /// <returns>true se il reperimento riesce</returns>
        public bool FetchFlightPlan()
        {
            status.Callsign         = IPSConfiguration.CALLSIGN;
            status.VirtualAirlineID = IPSConfiguration.VA_ID;

            IvaoFlightPlan fp = null;

            //try/catch inserito per issue 62
            try
            {
                fp = IPSUtils.RetrivePlan(status.Callsign);
            }
            catch (Exception ex)
            {
                Log("Impossibile reperire il piano di volo: " + ex.Message);
                Log(ex.StackTrace);
            }

            if (fp != null)
            {
                status.FlightPlan = fp;
                return(true);
            }
            else
            {
                return(false);
            }
        }
Example #2
0
        /// <summary>
        /// Reperisce il piano di volo dai server di IVAO
        /// </summary>
        /// <param name="ivaoCallsign">il callsign del pilota di cui scaricare il piano di volo</param>
        /// <returns>il piano di volo richiesto se presente, null altrimenti</returns>
        public static IvaoFlightPlan RetrivePlan(String ivaoCallsign)
        {
            //Istanzio le variabili che servono per la chiamata http
            WebClient    client    = new WebClient();
            Stream       data      = client.OpenRead(IPSConfiguration.IVAO_FP_URL);
            StreamReader reader    = new StreamReader(data);
            string       str       = "";
            string       rightLine = null;

            //sequenza di lettura: riga per riga si va alla ricerca di quella che inizia col callsign desiderato
            str = reader.ReadLine();
            while (str != null)
            {
                string[] tmp = str.Split(':');
                if (tmp[0].Equals(ivaoCallsign))
                {
                    rightLine = str;
                }
                str = reader.ReadLine();
            }

            if (rightLine != null)
            {
                //trovata la linea vado a cercare le colonne che mi interessano
                string[]       tmp     = rightLine.Split(':');
                IvaoFlightPlan toBeRet = new IvaoFlightPlan();
                toBeRet.Route              = tmp[30];
                toBeRet.Departure          = new Airport();
                toBeRet.Departure.ICAOCode = tmp[11];
                toBeRet.Arrival            = new Airport();
                toBeRet.Arrival.ICAOCode   = tmp[13];
                toBeRet.Alternate          = new Airport();
                toBeRet.Alternate.ICAOCode = tmp[28];
                toBeRet.FlightType         = tmp[21];
                toBeRet.Aircraft           = tmp[9].Split('/')[1];
                return(toBeRet);
            }
            else
            {
                return(null);
            }
        }