Channel9Downloader.DataAccess.DownloadManager.RemoveDownloadsFromQueueThatAreNoLongerEnabled C# (CSharp) Method

RemoveDownloadsFromQueueThatAreNoLongerEnabled() private method

Removes all downloads from the queue whose category is no longer enabled.
private RemoveDownloadsFromQueueThatAreNoLongerEnabled ( IEnumerable enabledCategories ) : void
enabledCategories IEnumerable List of enabled categories.
return void
        private void RemoveDownloadsFromQueueThatAreNoLongerEnabled(IEnumerable<Category> enabledCategories)
        {
            for (int i = _downloadQueue.Count - 1; i >= 0; i--)
            {
                var downloadItem = _downloadQueue.ElementAt(i);

                if (downloadItem.Category == null)
                {
                    continue;
                }

                var isInAnyCategory =
                    enabledCategories.Any(p => p.RelativePath == downloadItem.Category.RelativePath);

                if (!isInAnyCategory &&
                    (downloadItem.DownloadState == DownloadState.Queued || downloadItem.DownloadState == DownloadState.Stopped))
                {
                    _downloadQueue.Remove(_downloadQueue.ElementAt(i));
                    RaiseDownloadRemoved(new DownloadRemovedEventArgs(downloadItem));
                }
            }
        }