示例#1
0
        public static DownloadLink LoadDownloadAsync(this IServiceProvider host,
                                                     string address,
                                                     ComicDetail detail,
                                                     IComicSaver saver)
        {
            var provider = host.GetComicProvider(address);

            if (provider == null)
            {
                return(default);
示例#2
0
        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));
        }
示例#3
0
 public ComicDownloadRequest(IComicSaver saver,
                             ComicEntity entity,
                             ComicDetail detail,
                             IReadOnlyCollection <DownloadItemRequest> requests,
                             IComicSourceProvider provider)
 {
     Detail           = detail;
     Entity           = entity;
     Saver            = saver;
     DownloadRequests = requests;
     Provider         = provider;
 }
示例#4
0
 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>();
 }