public void Update(WeatherInfo info) { Console.Write("Weather forecast: "); if (info.Temperature < 10) { Console.Write("Cold"); } else if (info.Temperature < 25) { Console.Write("Warm"); } else { Console.Write("Hot"); } Console.Write(" and "); if (info.WindSpeed < 5) { Console.WriteLine("Windless"); } else { Console.WriteLine("Windy"); } Console.WriteLine(); }
public void Notify(WeatherInfo info) { foreach (var observer in observers) { observer.Update(info); } }
public bool WeatherInCityChanged(string city, WeatherInfo weatherInfo) { bool weatherIsChanged = true; string fileName = Path.Combine(DatabaseCatalog, city + ".xml"); // check the previous record about weather in gotten city if (File.Exists(fileName)) { XmlSerializer reader = new XmlSerializer(typeof(WeatherInfo)); StreamReader streamReader = new StreamReader(fileName); WeatherInfo previousWeatherInfo = (WeatherInfo)reader.Deserialize(streamReader); streamReader.Close(); if (weatherInfo.Equals(previousWeatherInfo)) { weatherIsChanged = false; } } XmlSerializer writer = new XmlSerializer(typeof(WeatherInfo)); StreamWriter streamWriter = new StreamWriter(fileName); writer.Serialize(streamWriter, weatherInfo); streamWriter.Close(); return(weatherIsChanged); }
public WeatherInfo GetWeatherInfo(string city) { try { if (client == null) { // can be some exception in static constructor or for example by time out ClientInitialization(); } var results = client.Query(city); WeatherInfo weatherInfo = new WeatherInfo { Temperature = results.Main.Temperature.CelsiusCurrent, Humidity = results.Main.Humdity, Pressure = results.Main.Pressure, City = city }; return(weatherInfo); } catch (Exception e) { throw new OpenWeatherAPIException("Can't get result at that time by connection to OpenWeatherMap", e); } }
public void OnWeatherChanged(string city, WeatherInfo weatherInfo) { if (weathersByCities.ContainsKey(city)) { weathersByCities[city].Invoke(weatherInfo); } }
public void Update(WeatherInfo info) { Console.WriteLine("--- Street stand ---"); Console.WriteLine($"Temperature: {info.Temperature}"); Console.WriteLine($"Wind speed: {info.WindSpeed}"); Console.WriteLine("--------------------"); Console.WriteLine(" | "); Console.WriteLine(); }
public void DoMeasurements() { foreach (var city in weathersByCities.Keys) { OpenWeatherManager weatherManager = new OpenWeatherManager(); try { WeatherInfo weatherInfo = weatherManager.GetWeatherInfo(city); bool weatherInCityChanged = weatherManager.WeatherInCityChanged(city, weatherInfo); if (weatherInCityChanged) { OnWeatherChanged(city, weatherInfo); } } catch (OpenWeatherAPIException e) { Console.WriteLine("Problem with connection or credentials. Try later or check your credentials more accurate!"); break; } } }
public void Update(WeatherInfo weatherInfo) { Console.WriteLine($"Current conditions in the city {weatherInfo.ToString()}"); }
public void Update(WeatherInfo info) { Console.WriteLine($"Gismeteo website: Temperature [{info.Temperature}], Wind speed [{info.WindSpeed}]\n"); }