Пример #1
0
        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));
        }
Пример #2
0
        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);
        }