public ConditionalImageDownloader(ShouldDownloadImageDelegate shouldDownloadImage, IPhilomenaImageDownloader downloader)
        {
            _logger = Logger.Factory.CreateLogger(GetType());

            _shouldDownloadImage = shouldDownloadImage;
            _downloader          = downloader;
        }
Esempio n. 2
0
        /// <summary>
        /// Adds a conditional downloader
        /// </summary>
        /// <param name="shouldDownloadImage">A delegate that returns true if an image should be downloaded</param>
        /// <param name="buildInnerDownloader">Configures the inner downloader builder</param>
        public SequentialPhilomenaImageDownloaderBuilder WithConditionalDownloader(ShouldDownloadImageDelegate shouldDownloadImage, Func <SequentialPhilomenaImageDownloaderBuilder, SequentialPhilomenaImageDownloaderBuilder> buildInnerDownloader)
        {
            // Build the inner downloader
            SequentialPhilomenaImageDownloaderBuilder builder         = new SequentialPhilomenaImageDownloaderBuilder();
            SequentialPhilomenaImageDownloader        innerDownloader = buildInnerDownloader(builder).Build();

            // Wrap the downloader in a conditional downloader
            var conditionalDownloader = new ConditionalImageDownloader(shouldDownloadImage, innerDownloader);

            return(new
                   (
                       _downloaders.Append(conditionalDownloader)
                   ));
        }