public async void GetAirplanes()
        {
            string response = await WebClient.Get("https://opensky-network.org/api/states/all");

            _airplanes    = AirplaneCollectionParser.FromJson(response);
            _loadedPlanes = true;
        }
Example #2
0
        public static AirplaneCollection FromJson(string json)
        {
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            dynamic               parsed    = serializer.Deserialize <dynamic>(json);
            List <Airplane>       airplanes = new List <Airplane>();
            IEnumerable <dynamic> states    = parsed["states"];

            foreach (dynamic currentState in states)
            {
                try {
                    Airplane airplane = new Airplane();

                    string preferredName = currentState[1];
                    string id            = currentState[0];
                    if (String.IsNullOrWhiteSpace(preferredName))
                    {
                        airplane.Name = id;
                    }
                    else
                    {
                        airplane.Name = preferredName;
                    }
                    airplane.Name = airplane.Name.Trim();

                    airplane.Country = currentState[2];

                    airplane.Longitude = Convert.ToDouble(currentState[5]);
                    airplane.Latitude  = Convert.ToDouble(currentState[6]);

                    if (airplane.Longitude == 0 && airplane.Latitude == 0)
                    {
                        throw new Exception("Invalid.");
                    }

                    airplane.OnGround = currentState[8];

                    airplanes.Add(airplane);
                }
                catch { }
            }
            AirplaneCollection collection = new AirplaneCollection();

            collection.Time      = new DateTime(parsed["time"]);
            collection.Airplanes = airplanes;

            return(collection);
        }