private Forecast GetForecast(XElement element) { var forecast = new Forecast(); var phenomena = new Phenomena(); var day = Int32.Parse(element.Attribute("day").Value); var month = Int32.Parse(element.Attribute("month").Value); var year = Int32.Parse(element.Attribute("year").Value); var hour = Int32.Parse(element.Attribute("hour").Value); forecast.Weekday = ((Weekdays)(int.Parse(element.Attribute("weekday").Value) - 1)).ToString(); var xmlPhenomena = element.Element("PHENOMENA"); phenomena.Cloudiness = int.Parse(xmlPhenomena.Attribute("cloudiness").Value); phenomena.Precipitation = int.Parse(xmlPhenomena.Attribute("precipitation").Value); phenomena.SPower = int.Parse(xmlPhenomena.Attribute("spower").Value); phenomena.RPower = int.Parse(xmlPhenomena.Attribute("rpower").Value); forecast.PicturePath = PicturePathGetter.GetPicturePath(phenomena); forecast.Cloudiness = "Cloudiness: " + Cloudiness.GetByNumber(int.Parse(xmlPhenomena.Attribute("cloudiness").Value)); forecast.Precipitation = "Precipitation: " + Cloudiness.GetByNumber(int.Parse(xmlPhenomena.Attribute("precipitation").Value)); forecast.Pressure = "Pressure: " + element.Element("PRESSURE").Attributes().Sum(x => double.Parse(x.Value) / 2).ToString() + " mmHg"; forecast.Temperature = "Temperature: " + element.Element("TEMPERATURE").Attributes().Sum(x => double.Parse(x.Value) / 2).ToString() + "°"; var wind = element.Element("WIND"); forecast.WindSpeed = "Wind speed: " + ((double.Parse(wind.Attribute("max").Value) + double.Parse(wind.Attribute("min").Value)) / 2).ToString() + "m/s"; forecast.WindDirection = "Directrion: " + ((WindDirection)(int.Parse(wind.Attribute("direction").Value))).ToString(); forecast.Relwet = "Relwet: " + element.Element("RELWET").Attributes().Sum(x => double.Parse(x.Value) / 2).ToString() + "%"; forecast.DateTime = new DateTime(year, month, day, hour, 0, 0).ToString("g"); return(forecast); }
public static string GetPicturePath(Phenomena phenomena) { return(@"/WeatherPictures/" + picturePath[phenomena.Cloudiness + 5 * phenomena.Precipitation /**Math.Max(phenomena.RPower, phenomena.SPower)*/]); }