示例#1
0
        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);
        }