private object Remove(int id) { var blacklist = false; var blacklistQuery = Request.Query.blacklist; if (blacklistQuery.HasValue) { blacklist = Convert.ToBoolean(blacklistQuery.Value); } var pendingRelease = _pendingReleaseService.FindPendingQueueItem(id); if (pendingRelease != null) { _pendingReleaseService.RemovePendingQueueItems(pendingRelease.Id); return(new object()); } var trackedDownload = GetTrackedDownload(id); if (trackedDownload == null) { throw new NotFoundException(); } var downloadClient = _downloadClientProvider.Get(trackedDownload.DownloadClient); if (downloadClient == null) { throw new BadRequestException(); } downloadClient.RemoveItem(trackedDownload.DownloadItem, true); if (blacklist) { _failedDownloadService.MarkAsFailed(trackedDownload.DownloadItem.DownloadId); } return(new object()); }
private TrackedDownload Remove(int id, bool removeFromClient, bool blocklist) { var pendingRelease = _pendingReleaseService.FindPendingQueueItem(id); if (pendingRelease != null) { if (blocklist) { _blocklistService.Block(pendingRelease.RemoteMovie, "Pending release manually blocklisted"); } _pendingReleaseService.RemovePendingQueueItems(pendingRelease.Id); return(null); } var trackedDownload = GetTrackedDownload(id); if (trackedDownload == null) { throw new NotFoundException(); } if (removeFromClient) { var downloadClient = _downloadClientProvider.Get(trackedDownload.DownloadClient); if (downloadClient == null) { throw new BadRequestException(); } downloadClient.RemoveItem(trackedDownload.DownloadItem, true); } if (blocklist) { _failedDownloadService.MarkAsFailed(trackedDownload.DownloadItem.DownloadId); } if (!removeFromClient && !blocklist) { if (!_ignoredDownloadService.IgnoreDownload(trackedDownload)) { return(null); } } return(trackedDownload); }