public MastMarkerProvider() : base()
        {
            PluginLogName = PluginName;

            _request = new PollingRequest();
            _request.RequestProgressChanged += Request_RequestProgressChanged;
            _request.RequestCompleted += Request_RequestCompleted;
            _request.RequestCanceled += Request_RequestCanceled;
            _request.RequestFailed += Request_RequestFailed;
        }
        public MarkerProvider(IMarkerParser markerParser)
        {
            _markerParser = markerParser;
            _previousMarkers = new Dictionary<string, MediaMarker>();

            _request = new PollingRequest();
            _request.RequestProgressChanged += Request_RequestProgressChanged;
            _request.RequestCompleted += Request_RequestCompleted;
            _request.RequestFailed += Request_RequestFailed;

            SendLogEntry(KnownLogEntryTypes.TimedTextMarkerProviderInstantiated, message: TimedTextMediaPluginResources.TimedTextMediaPluginInstantiatedLogMessage);
        }
        private void Request_RequestCompleted(PollingRequest request, string result)
        {
            try
            {
                SendLogEntry(KnownLogEntryTypes.TimedTextMarkerProviderDownloadCompleted, message: TimedTextMediaPluginResources.DownloadCompletedLogMessage);

                if (result.IsNullOrWhiteSpace())
                    return;

                Thread thread = new Thread(ParseMarkers);
                thread.Start(result);
            }
            catch (Exception err)
            {
                LogParseError(err);
            }
        }
 private void Request_RequestFailed(PollingRequest request, Exception error)
 {
     string logMessage = string.Format(TimedTextMediaPluginResources.DownloadFailedLogMessage, error.Message);
     SendLogEntry(KnownLogEntryTypes.TimedTextMarkerProviderDownloadFailed, LogLevel.Warning, logMessage);
     RetrieveMarkersFailed.IfNotNull(i => i(this, error));
 }
 private void Request_RequestProgressChanged(PollingRequest request, double progress)
 {
     string message = string.Format(TimedTextMediaPluginResources.DownloadProgressChangedLogMessage, progress);
     SendLogEntry(KnownLogEntryTypes.TimedTextMarkerProviderDownloadProgressChanged, message: message);
 }
 private void Request_RequestCompleted(PollingRequest request, string result)
 {
     base.LoadMastDoc(result);
     SendLogEntry(LogEntryTypes.DownloadCompleted, message: MastMarkerProviderResources.DownloadCompletedLogMessage);
 }
 private void Request_RequestCanceled(PollingRequest obj)
 {
     base.LoadMastDoc(null);
 }
 private void Request_RequestFailed(PollingRequest request, Exception error)
 {
     base.LoadMastDoc(null);
     SendLogEntry(LogEntryTypes.DownloadFailed, LogLevel.Warning, string.Format(MastMarkerProviderResources.DownloadFailedLogMessage, error.Message));
     OnRetrieveMarkersFailed(error);
 }
 private void Request_RequestProgressChanged(PollingRequest request, double progress)
 {
     string message = string.Format(MastMarkerProviderResources.DownloadProgressChangedLogMessage, progress);
     SendLogEntry(LogEntryTypes.DownloadProgressChanged, message: message);
 }