void connection_ConnectionStatusChanged(object sender, IConnectionStatusChangedEventArgs args)
        {
            _actualConnectionStatus = args.Status;

            if (_intendedConnectionStatus == TweetStreamer.ConnectionStatus.Connected &&
                _actualConnectionStatus == TweetStreamer.ConnectionStatus.Disconnected)
            {
                if (_connectionTimer != null)
                {
                    _connectionTimer.Dispose();
                    _connectionTimer = null;
                }

                int milliSecondsToReconnect = GetSleepMilliSeconds();
                _logger.Log(Kwwika.Logging.LogLevels.Info, "Connection", "Waiting {0} milliseconds before connecting.", milliSecondsToReconnect);
                _connectionTimer = new Timer(new TimerCallback((object state) =>
                {
                    _connection.Connect();
                    _connectionTimer = null;
                }), null, milliSecondsToReconnect, Timeout.Infinite);
            }

            if (args.Status == TweetStreamer.ConnectionStatus.Connected)
            {
                ResetSleepMilliSeconds();
            }
        }
 /// <summary>
 /// Facilitates the sending of connection status information events.
 /// </summary>
 /// <param name="args"></param>
 private void OnConnectionStatusChanged(IConnectionStatusChangedEventArgs args)
 {
     if (this.ConnectionStatusChanged != null)
     {
         try
         {
             this.ConnectionStatusChanged(this, args);
         }
         catch (Exception ex)
         {
             _logger.LogError(ex);
         }
     }
 }