public static DownloadLink LoadDownloadAsync(this IServiceProvider host, string address, ComicDetail detail, IComicSaver saver) { var provider = host.GetComicProvider(address); if (provider == null) { return(default);
public static IDownloadCenter CreateQueneDownloadCenter(this IServiceProvider serviceProvider, IComicSaver saver) { if (serviceProvider is null) { throw new ArgumentNullException(nameof(serviceProvider)); } return(new DownloadCenter(serviceProvider, new QueneDownloadManager(), saver)); }
public ComicDownloadRequest(IComicSaver saver, ComicEntity entity, ComicDetail detail, IReadOnlyCollection <DownloadItemRequest> requests, IComicSourceProvider provider) { Detail = detail; Entity = entity; Saver = saver; DownloadRequests = requests; Provider = provider; }
public DownloadCenter(IServiceProvider serviceProvider, IDownloadManager downloadTasks, IComicSaver saver) { this.serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider)); this.downloadManager = downloadTasks ?? throw new ArgumentNullException(nameof(downloadTasks)); Saver = saver ?? throw new ArgumentNullException(nameof(saver)); semaphoreSlim = new SemaphoreSlim(1, 1); downloadMap = new Dictionary <string, DownloadBox>(); }