Ejemplo n.º 1
0
        public static async Task EmitAsync(this IComicDownloader downloader,
                                           ComicDownloadRequest request,
                                           CancellationToken token = default)
        {
            if (downloader is null)
            {
                throw new ArgumentNullException(nameof(downloader));
            }

            if (request is null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            var tasks = downloader.EmitTasks(request, token);

            foreach (var item in tasks)
            {
                await item();
            }
        }
Ejemplo n.º 2
0
        public static Task BatchEmitAsync(this IComicDownloader downloader,
                                          ComicDownloadRequest request,
                                          int concurrent          = 5,
                                          CancellationToken token = default)
        {
            if (downloader is null)
            {
                throw new ArgumentNullException(nameof(downloader));
            }

            if (request is null)
            {
                throw new ArgumentNullException(nameof(request));
            }
            if (concurrent <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(concurrent));
            }

            var tasks = downloader.EmitTasks(request, token);

            return(TaskQuene.RunVoidAsync(tasks, concurrent));
        }
Ejemplo n.º 3
0
 public ComicConfig(ComicType comicType, IComicDownloader downloader)
 {
     ComicType = comicType;
     Downloader = downloader;
 }
Ejemplo n.º 4
0
 public DownloadLink(IComicSourceProviderHost host, IComicDownloader downloader, ComicDownloadRequest request)
 {
     Host       = host;
     Downloader = downloader;
     Request    = request;
 }