public ServersUpdateTimer(ApiCachedServerStore serverStore, ApiServerProvider serverProvider)
 {
     this._serverStore    = serverStore;
     this._serverProvider = serverProvider;
     this._timer          = new DispatcherTimer();
     this._timer.Tick    += new EventHandler(this.OnTick);
 }
 public ServerSidePanelViewModel(VpnConnector vpnConnector, BestUserServerProvider bestServerProvider, ApiServerProvider apiServerProvider, VpnConnectionSpeedTracker speedTracker, ISettings userSettings, FavouritesManager favouritesManager, UserContext userContext, EventFacade eventFacade)
 {
     this._vpnConnector       = vpnConnector;
     this._bestServerProvider = bestServerProvider;
     this._apiServerProvider  = apiServerProvider;
     this._settings           = userSettings;
     this._favouritesManager  = favouritesManager;
     this._userContext        = userContext;
     this._eventFacade        = eventFacade;
     this._bestServerProvider.ServersChanged             += new EventHandler(this.OnServersChanged);
     this._vpnConnector.GeoServerConnectionStatusChanged += new ConnectionEventHandler <GeographicalServer>(this.OnServerConnectionStatusChanged);
     this._userContext.add_UserChanged(delegate(object s, UserEventArgs e)
     {
         this.UpdateCurrentServerViewModel();
     });
     this._favouritesManager.FavouriteServersChanged += new EventHandler <FavouriteServersChangedEventArgs>(this.ChangeCurrentServerFavouriteStatus);
     speedTracker.SpeedChanged = (EventHandler <VpnConnectionSpeedChangeEventArgs>)Delegate.Combine(speedTracker.SpeedChanged, new EventHandler <VpnConnectionSpeedChangeEventArgs>(this.UpdateSpeeds));
     this._settings.Observe <UserSettings, DistanceUnits>((UserSettings s) => s.DistanceUnits, delegate(DistanceUnits d)
     {
         this.UpdateCurrentServerViewModel();
     });
 }