private WeatherItem ParseRawReport(string _report) { var reportObj = JObject.Parse(_report)["query"]["results"]["channel"] as JObject; CheckForValidReport(reportObj); try { return(WeatherItem.FromJson(reportObj)); } catch (Exception e) { throw new WeatherParsingException("See inner exception for details.", e); } }
public static WeatherItem FromJson(JObject _jObject) { var wI = new WeatherItem { Astronomy = AstronomyInfo.FromJson(_jObject["astronomy"] as JObject), Atmosphere = AtmosphereConditions.FromJson(_jObject["atmosphere"] as JObject), CurrentCondition = WeatherCondition.FromJson(_jObject["item"]["condition"] as JObject), WLocation = WeatherLocation.FromJson(_jObject["location"] as JObject), Units = MeasurementUnits.FromJson(_jObject["units"] as JObject), Wind = WindConditions.FromJson(_jObject["wind"] as JObject), Location = GeoLocation.FromJson(_jObject["item"] as JObject), Link = (string)_jObject["item"]["link"], Published = (string)_jObject["item"]["pubDate"], Title = (string)_jObject["item"]["title"], Description = (string)_jObject["item"]["description"] }; foreach (var forecast in _jObject["item"]["forecast"]) { wI.Forecasts.Add(WeatherForecast.FromJson(forecast as JObject)); } return(wI); }