public void StopStream(Exception exception, IDisconnectMessage disconnectMessage = null) { lock (_lockStream) { StopStreamAndUnsubscribeFromEvents(); if (exception is ITwitterTimeoutException && disconnectMessage == null) { disconnectMessage = new DisconnectMessage { Code = 503, Reason = "Timeout" }; } var streamExceptionEventArgs = new StreamExceptionEventArgs(exception, disconnectMessage); this.Raise(StreamStopped, streamExceptionEventArgs); } }
private void StreamTaskStateChanged(object sender, GenericEventArgs<StreamState> args) { var streamState = args.Value; switch (streamState) { case StreamState.Resume: this.Raise(StreamResumed); break; case StreamState.Pause: this.Raise(StreamPaused); break; case StreamState.Stop: StreamExceptionEventArgs streamExceptionEventArgs; var streamTask = _currentStreamTask; if (streamTask != null) { streamExceptionEventArgs = new StreamExceptionEventArgs(streamTask.LastException); } else { streamExceptionEventArgs = new StreamExceptionEventArgs(null); } this.Raise(StreamStopped, streamExceptionEventArgs); break; } }