public List <WeatherData> GetWeatherForcast(Location location, WeatherUnits unit) { string url = BaseURL + "/data/2.5/forecast?"; if (location is CityLocation) { CityLocation loc = (CityLocation)location; url += "q=" + loc.cityName; if (!System.String.IsNullOrEmpty(loc.countryCode)) { url += "," + loc.countryCode; } } else if (location is CoordinateLocation) { CoordinateLocation loc = (CoordinateLocation)location; url += "lat=" + loc.lat + "&lon=" + loc.lon; } else { throw new WeatherDataServiceException("unsupported location type"); } if (unit == WeatherUnits.Celsius) { url += "&units=metric"; } else if (unit == WeatherUnits.Fahrenheit) { url += "&units=imperial"; } else if (unit == WeatherUnits.Kelvin) { } else { throw new WeatherDataServiceException("unsupported unit type"); } url += "&appid=" + APIKey; DataContractJsonSerializer parser = new DataContractJsonSerializer(typeof(WeatherListJson)); WeatherListJson json = (WeatherListJson)parser.ReadObject((MakeWebRequest(url))); List <WeatherData> data = new List <WeatherData>(); foreach (WeatherJson j in json.list) { data.Add(FromJsonToData(j, location, unit)); } return(data); }
public WeatherData GetWeatherData(Location location, WeatherUnits unit) { string url = BaseURL + "/data/2.5/weather?"; if (location is CityLocation) { CityLocation loc = (CityLocation)location; url += "q=" + loc.cityName; if (!System.String.IsNullOrEmpty(loc.countryCode)) { url += "," + loc.countryCode; } } else if (location is Ziplocation) { Ziplocation loc = (Ziplocation)location; url += "zip=" + loc.zipCode + "," + loc.countryCode; } else if (location is CoordinateLocation) { CoordinateLocation loc = (CoordinateLocation)location; url += "lat=" + loc.lat + "&lon=" + loc.lon; } else { throw new WeatherDataServiceException("unsupported location type"); } if (unit == WeatherUnits.Celsius) { url += "&units=metric"; } else if (unit == WeatherUnits.Fahrenheit) { url += "&units=imperial"; } else if (unit == WeatherUnits.Kelvin) { } else { throw new WeatherDataServiceException("unsupported unit type"); } url += "&appid=" + APIKey; DataContractJsonSerializer parser = new DataContractJsonSerializer(typeof(WeatherJson)); WeatherJson json = (WeatherJson)parser.ReadObject(MakeWebRequest(url)); return(FromJsonToData(json, location, unit)); }