static WeatherController() { CurrentLocationIndex = 0; Sources = new Dictionary <string, AbstractWeatherSource> (); Sources.Add(WeatherChannelWeatherSource.GetInstance().Name, WeatherChannelWeatherSource.GetInstance()); Sources.Add(WunderWeatherSource.GetInstance().Name, WunderWeatherSource.GetInstance()); ResetWeatherSource(); WeatherPreferences.LocationsChanged += HandleLocationsChanged; WeatherPreferences.SourceChanged += HandleSourceChanged; WeatherPreferences.TimeoutChanged += HandleTimeoutChanged; WeatherPreferences.MetricChanged += HandleMetricChanged; DockServices.System.ConnectionStatusChanged += HandleStateChanged; }
/// <summary> /// Resets the weather source, using a default if needed. /// </summary> public static void ResetWeatherSource() { if (Weather != null) { Weather.WeatherReloading -= HandleWeatherReloading; Weather.WeatherError -= HandleWeatherError; Weather.WeatherUpdated -= HandleWeatherUpdated; } if (Sources.ContainsKey(WeatherPreferences.Source)) { Weather = Sources [WeatherPreferences.Source]; } else { Weather = Sources [WunderWeatherSource.GetInstance().Name]; } AbstractWeatherSource.UseMetric = WeatherPreferences.Metric; Weather.WeatherReloading += HandleWeatherReloading; Weather.WeatherError += HandleWeatherError; Weather.WeatherUpdated += HandleWeatherUpdated; }