Ejemplo n.º 1
0
        /// <summary>
        /// Get Airport object from IATA
        /// </summary>
        /// <param name="iata">IATA</param>
        /// <returns></returns>
        public static Airport GetAirportByIata(string iata)
        {
            if (ListAirports == null)
            {
                string jsonstring = ResourceHelper.LoadExternalResource(resourceFileName);

                ListAirports = JsonConvert.DeserializeObject <IDictionary <string, IDictionary <string, object> > >(jsonstring);

                LoggingHelper.LogBehavior($">>> Done converting {resourceFileName} file ''.");
            }


            IDictionary <string, object> selectedAirport = null;

            if (ListAirports.ContainsKey(iata))
            {
                selectedAirport = ListAirports[iata];
            }
            // procurar por ICAO
            else if (!String.IsNullOrEmpty(iata))
            {
                var airportByICAO = ListAirports.Where(s => s.Value.ContainsKey("ICAO") && s.Value["ICAO"].ToString() == iata);

                if (airportByICAO.Any())
                {
                    iata = airportByICAO.FirstOrDefault().Key;
                }
            }

            if (ListAirports.ContainsKey(iata))
            {
                selectedAirport = ListAirports[iata];

                var airport = new Airport()
                {
                    City        = selectedAirport["City"].ToString(),
                    Country     = selectedAirport["Country"].ToString(),
                    Name        = selectedAirport["Name"].ToString(),
                    IATA        = iata,
                    Position    = new GeoPosition(selectedAirport["Lat"].ToString(), selectedAirport["Long"].ToString(), AltitudeMetric.FromFoot(double.Parse(selectedAirport["Alt"].ToString()))),
                    IsValid     = true,
                    ICAO        = selectedAirport["ICAO"].ToString(),
                    ListRunways = new List <Runway>()
                };



                return(airport);
            }
            else
            {
                return(new Airport()
                {
                    Name = iata + " (no found)",
                    IATA = iata,
                    City = String.Empty,
                    Country = String.Empty,
                    IsValid = false,
                });
            }
        }