private static void ParseDaylyForecast(XDocument xDoc, WeatherInfoViewModel weatherInfo) { var forecast = xDoc.Root.Element("forecast").Elements(); foreach (var node in forecast) { var weatherDetails = new WeatherDetailsInfoViewModel(); DateTime cleanDate; string dateString = node.Attribute("from").Value; DateTime.TryParseExact(dateString, "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None, out cleanDate); weatherDetails.Time = cleanDate.ToLocalTime(); weatherDetails.WeatherState = node.Element("symbol").Attribute("name").Value.ToUpper(); weatherDetails.WeatherStateCode = int.Parse(node.Element("symbol").Attribute("number").Value); weatherDetails.WindDirection = node.Element("windDirection").Attribute("code").Value; weatherDetails.WindSpeed = double.Parse(node.Element("windSpeed").Attribute("mps").Value); var temperatureNode = node.Element("temperature"); weatherDetails.CurrentTemperature = double.Parse(temperatureNode.Attribute("value").Value); weatherDetails.MinimalTemperature = double.Parse(temperatureNode.Attribute("min").Value); weatherDetails.MaximalTemperature = double.Parse(temperatureNode.Attribute("max").Value); weatherDetails.Pressure = double.Parse(node.Element("pressure").Attribute("value").Value); weatherDetails.Humidity = double.Parse(node.Element("humidity").Attribute("value").Value); weatherInfo.ShortTermWeatherDetails.Add(weatherDetails); } }
public object Convert(object value, Type targetType, object parameter, string language) { WeatherDetailsInfoViewModel viewModel = value as WeatherDetailsInfoViewModel; if (viewModel != null) { var metric = App.ApplicationViewModel.MeasurementUnits == MeasurementUnits.Metric ? "C" : "F"; var resultString = string.Format("{0:0.0}°{1}/{2:0.0}°{1}", Math.Round(viewModel.MinimalTemperature, 2), metric, Math.Round(viewModel.MaximalTemperature, 2)); return(resultString); } return(value); }