예제 #1
0
        private Response MarkAsFailed()
        {
            var id = (int)Request.Form.Id;

            _failedDownloadService.MarkAsFailed(id);
            return(new Object().AsResponse());
        }
예제 #2
0
        private TrackedDownload Remove(int id, bool blacklist, bool skipReDownload)
        {
            var pendingRelease = _pendingReleaseService.FindPendingQueueItem(id);

            if (pendingRelease != null)
            {
                _pendingReleaseService.RemovePendingQueueItems(pendingRelease.Id);

                return(null);
            }

            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.DownloadId, true);

            if (blacklist)
            {
                _failedDownloadService.MarkAsFailed(trackedDownload.DownloadItem.DownloadId, skipReDownload);
            }

            return(trackedDownload);
        }
예제 #3
0
        private object MarkAsFailed()
        {
            var id = (int)Request.Form.Id;

            _failedDownloadService.MarkAsFailed(id);
            return(new object());
        }
예제 #4
0
        private TrackedDownload Remove(int id, bool removeFromClient, bool blocklist)
        {
            var pendingRelease = _pendingReleaseService.FindPendingQueueItem(id);

            if (pendingRelease != null)
            {
                if (blocklist)
                {
                    _blocklistService.Block(pendingRelease.RemoteEpisode, "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);
        }
예제 #5
0
        private object Remove(int id)
        {
            var blocklist      = false;
            var blocklistQuery = Request.Query.blocklist;

            // blacklist maintained for backwards compatability, UI uses blocklist.
            var blacklistQuery = Request.Query.blacklist;

            if (blocklistQuery.HasValue)
            {
                blocklist = Convert.ToBoolean(blocklistQuery.Value);
            }
            else if (blacklistQuery.HasValue)
            {
                blocklist = 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 (blocklist)
            {
                _failedDownloadService.MarkAsFailed(trackedDownload.DownloadItem.DownloadId);
            }

            return(new object());
        }
예제 #6
0
        public void MarkAsFailed(Int32 historyId)
        {
            var item = _historyService.Get(historyId);

            var trackedDownload = GetTrackedDownloads()
                                  .Where(h => h.DownloadItem.DownloadClientId.Equals(item.Data.GetValueOrDefault(DOWNLOAD_CLIENT_ID)))
                                  .FirstOrDefault();

            if (trackedDownload != null && trackedDownload.State == TrackedDownloadState.Unknown)
            {
                ProcessTrackedDownloads();
            }

            _failedDownloadService.MarkAsFailed(trackedDownload, item);
        }
예제 #7
0
        private Response 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.RemovePendingQueueItem(id);

                return(new object().AsResponse());
            }

            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.DownloadId, true);

            if (blacklist)
            {
                _failedDownloadService.MarkAsFailed(trackedDownload.DownloadItem.DownloadId);
            }

            return(new object().AsResponse());
        }
예제 #8
0
        private object MarkAsFailed(int id)
        {
            _failedDownloadService.MarkAsFailed(id);

            return new object();
        }
예제 #9
0
 public object MarkAsFailed([FromRoute] int id)
 {
     _failedDownloadService.MarkAsFailed(id);
     return(new { });
 }
예제 #10
0
 public object MarkAsFailed([FromBody] int id)
 {
     _failedDownloadService.MarkAsFailed(id);
     return(new object());
 }