//private WeatherText ProcessWeatherText(WeatherData data) //{ // var values = data.Data.Parameters.First().Weathers; // var timeLayout = data.Data.TimeLayouts.FirstOrDefault(x => x.Key.Equals(values[0].TimeLayoutKey)); // var list = new List<WeatherData<string>>(); // if (values != null && timeLayout != null) // { // for (var index = 0; index < values.Length; index++) // { // var sb = new StringBuilder(); // foreach (var condition in values[0].WeatherConditions) // { // //condition.Values[0].Coverage.ToInitialCap(); // } // var startTime = timeLayout.StartTimes[index]; // var endTime = new DateTime?(); // if (timeLayout.EndTimes != null) // { // endTime = timeLayout.EndTimes[index]; // } // list.Add(new WeatherData<int> // { // Value = (int)data.Values[index], // Start = startTime, // End = endTime // }); // } // } // return list; //} private WeatherDataHumidity ProcessHumidities(WeatherData data) { var relHumidities = data.Data.Parameters.First().Humidities.FirstOrDefault(x => x.Type.Equals("relative")); var humidityData = new WeatherDataHumidity(); humidityData.Relative = ProcessValues(relHumidities, data.Data.TimeLayouts); return humidityData; }
public WeatherRequestResult Build(WeatherData data) { var source = data.Head.Source; var result = new WeatherRequestResult { CreditUrl = source.Credit, CreditLogUrl = source.CreditLogo, CreatedOnUtc = data.Head.Product.CreationDate, Temperatures = ProcessTemperatures(data), Precipitation = ProcessPrecipitations(data), Humidity = ProcessHumidities(data), PrecipitationProbability = ProcessPrecipProbabilities(data), Wind = ProcessWind(data), CloudCover = ProcessCloudCover(data) }; // result.Weather = ProcessWeatherText(data); // result.Weather = ProcessWeathers(data); return result; }
private WeatherDataPrecipitation ProcessPrecipitations(WeatherData data) { var values = data.Data.Parameters.First().Precipitations; var snow = values.FirstOrDefault(t => t.Type.Equals("snow")); var ice = values.FirstOrDefault(t => t.Type.Equals("ice")); var liquid = values.FirstOrDefault(t => t.Type.Equals("liquid")); var precipData = new WeatherDataPrecipitation(); precipData.Snow = ProcessValues(snow, data.Data.TimeLayouts); precipData.Ice = ProcessValues(ice, data.Data.TimeLayouts); precipData.Liquid = ProcessValues(liquid, data.Data.TimeLayouts); return precipData; }
private WeatherDataCloudCover ProcessCloudCover(WeatherData data) { var parameters = data.Data.Parameters.First(); var coverage = parameters.CloudAmounts.FirstOrDefault(); return new WeatherDataCloudCover {Percent = ProcessValues(coverage, data.Data.TimeLayouts)}; }
private WeatherDataWind ProcessWind(WeatherData data) { var parameters = data.Data.Parameters.First(); var speeds = parameters.WindSpeeds; var directions = parameters.WindDirections.FirstOrDefault(); var gusts = speeds.FirstOrDefault(x => x.Type.Equals("gust")); var sustained = speeds.FirstOrDefault(x => x.Type.Equals("sustained")); var windData = new WeatherDataWind(); windData.Direction = ProcessValues(directions, data.Data.TimeLayouts); windData.Gusts = ProcessValues(gusts, data.Data.TimeLayouts); windData.Speed = ProcessValues(sustained, data.Data.TimeLayouts); return windData; }
private WeatherDataTemperature ProcessTemperatures(WeatherData data) { var values = data.Data.Parameters.First().Temperatures; var apparentTemps = values.FirstOrDefault(t => t.Type.Equals("apparent")); var maxTemps = values.FirstOrDefault(t => t.Type.Equals("maximum")); var minTemps = values.FirstOrDefault(t => t.Type.Equals("minimum")); var hourly = values.FirstOrDefault(t => t.Type.Equals("hourly")); var dewPoint = values.FirstOrDefault(t => t.Type.Equals("dew point")); var tempData = new WeatherDataTemperature { DailyMaximum = ProcessValues(maxTemps, data.Data.TimeLayouts), DailyMinimum = ProcessValues(minTemps, data.Data.TimeLayouts), Apparent = ProcessValues(apparentTemps, data.Data.TimeLayouts), DewPoint = ProcessValues(dewPoint, data.Data.TimeLayouts), Hourly = ProcessValues(hourly, data.Data.TimeLayouts) }; return tempData; }
private WeatherDataPrecipitationProbability ProcessPrecipProbabilities(WeatherData data) { var values = data.Data.Parameters.First().ProbabilityOfPrecipitations; var container = new WeatherDataPrecipitationProbability(); container.Percents = ProcessValues(values.FirstOrDefault(t => t.Type.Equals("12 hour")), data.Data.TimeLayouts); return container; }