private void ProcessTrackedDownloads() { var grabbedHistory = _historyService.Grabbed(); var failedHistory = _historyService.Failed(); var importedHistory = _historyService.Imported(); var stateChanged = UpdateTrackedDownloads(grabbedHistory); var downloadClients = _downloadClientProvider.GetDownloadClients().ToList(); var trackedDownloads = GetTrackedDownloads(); foreach (var trackedDownload in trackedDownloads) { var downloadClient = downloadClients.SingleOrDefault(v => v.Definition.Id == trackedDownload.DownloadClient); if (downloadClient == null) { _logger.Debug("TrackedDownload for unknown download client, download client was probably removed or disabled between scans."); continue; } var state = trackedDownload.State; if (trackedDownload.State == TrackedDownloadState.Unknown) { trackedDownload.State = TrackedDownloadState.Downloading; } _failedDownloadService.CheckForFailedItem(downloadClient, trackedDownload, grabbedHistory, failedHistory); _completedDownloadService.CheckForCompletedItem(downloadClient, trackedDownload, grabbedHistory, importedHistory); if (state != trackedDownload.State) { stateChanged = true; } } _trackedDownloadCache.Set("queued", FilterQueuedDownloads(trackedDownloads), TimeSpan.FromSeconds(5.0)); if (stateChanged) { _eventAggregator.PublishEvent(new UpdateQueueEvent()); } }
private void ProcessTrackedDownloads() { var grabbedHistory = _historyService.Grabbed(); var failedHistory = _historyService.Failed(); var importedHistory = _historyService.Imported(); var stateChanged = UpdateTrackedDownloads(); var downloadClients = _downloadClientProvider.GetDownloadClients(); var trackedDownloads = GetTrackedDownloads(); foreach (var trackedDownload in trackedDownloads) { var downloadClient = downloadClients.Single(v => v.Definition.Id == trackedDownload.DownloadClient); var state = trackedDownload.State; if (trackedDownload.State == TrackedDownloadState.Unknown) { trackedDownload.State = TrackedDownloadState.Downloading; } _failedDownloadService.CheckForFailedItem(downloadClient, trackedDownload, grabbedHistory, failedHistory); _completedDownloadService.CheckForCompletedItem(downloadClient, trackedDownload, grabbedHistory, importedHistory); if (state != trackedDownload.State) { stateChanged = true; } } _trackedDownloadCache.Set("queued", FilterQueuedDownloads(trackedDownloads), TimeSpan.FromSeconds(5.0)); if (stateChanged) { _eventAggregator.PublishEvent(new UpdateQueueEvent()); } }