public async Task <ICollection <WeatherOutput1> > ProvideWeatherData() { List <string> weatherData = ReadWeatherData(); List <string> weatherDataWOUnicode = ReadWeatherData(); List <WeatherOutput1> weatherOutputList = new List <WeatherOutput1>(); List <WeatherOutput1> output = new List <WeatherOutput1>(); foreach (var individualData in weatherData) { var indWeather = Regex.Replace(individualData, @"[^\u0000-\u007F]", String.Empty); weatherDataWOUnicode.Add(indWeather); var result = JsonConvert.DeserializeObject <WeatherRoot>(indWeather); string location = result.title; foreach (var item in result.consolidated_weather) { WeatherTemperature tempInfo = new WeatherTemperature(); tempInfo.max_temp = item.max_temp; tempInfo.min_temp = item.min_temp; WeatherOutput1 weatherOutput = new WeatherOutput1(); weatherOutput.city = location; weatherOutput._date = item.applicable_date; weatherOutput.temperatureInfo = tempInfo; weatherOutputList.Add(weatherOutput); } } output = weatherOutputList.OrderBy(x => x.city).GroupBy(x => x._date).Select(x => x.OrderBy(p => p.temperatureInfo.min_temp).First()).ToList(); // return final result as list of strings return(await Task.FromResult(output)); }
static void Main(string[] args) { var weatherTemperature = new WeatherTemperature(20); var weatherHumidity = new WeatherHumidity(10); var weatherPressure = new WeatherPressure(15); var weatherData = new WeatherData(weatherTemperature, weatherHumidity, weatherPressure); var currentConditionsReport = new CurrentConditionsReport(); var statisticReport = new StatisticReport(); var weatherStation = new WeatherStation(weatherData, currentConditionsReport, statisticReport); weatherData.SetWeatherData(weatherTemperature, weatherHumidity, weatherPressure); weatherTemperature.SetTemperature(35); weatherData.SetWeatherData(weatherTemperature, weatherHumidity, weatherPressure); weatherHumidity.SetHumidity(25); weatherData.SetWeatherData(weatherTemperature, weatherHumidity, weatherPressure); weatherPressure.SetPressure(100); weatherData.SetWeatherData(weatherTemperature, weatherHumidity, weatherPressure); }