public static bool TryCreateDefaultNugetPackScraper(ScraperConfig config, out PackSourceChecker packSourceChecker) { NugetPackProvider packProvider = new NugetPackProvider(config.BasePath, config.PageSize, config.RunOnlyOnePage, config.IncludePreviewPacks); List <Func <IInstalledPackInfo, PreFilterResult> > preFilterList = new List <Func <IInstalledPackInfo, PreFilterResult> >(); if (!PreviouslyRejectedPackFilter.TryGetPreviouslySkippedPacks(config.PreviousRunBasePath, out HashSet <string> nonTemplatePacks)) { Console.WriteLine("Unable to read results from the previous run."); packSourceChecker = null; return(false); } preFilterList.Add(PreviouslyRejectedPackFilter.SetupPackFilter(nonTemplatePacks)); if (!config.DontFilterOnTemplateJson) { preFilterList.Add(TemplateJsonExistencePackFilter.SetupPackFilter()); } preFilterList.Add(SkipTemplatePacksFilter.SetupPackFilter()); PackPreFilterer preFilterer = new PackPreFilterer(preFilterList); IReadOnlyList <IAdditionalDataProducer> additionalDataProducers = new List <IAdditionalDataProducer>() { new CliHostDataProducer() }; packSourceChecker = new PackSourceChecker(packProvider, preFilterer, additionalDataProducers, config.SaveCandidatePacks); return(true); }
public static bool TryCreateDefaultNugetPackScraper(ScraperConfig config, out PackSourceChecker packSourceChecker) { List <IPackProvider> providers = new List <IPackProvider>(); if (!config.Providers.Any()) { providers.AddRange(SupportedProviders.Select(kvp => new NugetPackProvider(kvp.Key, kvp.Value, config.BasePath, config.PageSize, config.RunOnlyOnePage, config.IncludePreviewPacks))); } else { foreach (string provider in config.Providers.Distinct(StringComparer.OrdinalIgnoreCase)) { providers.Add(new NugetPackProvider(provider, SupportedProviders[provider], config.BasePath, config.PageSize, config.RunOnlyOnePage, config.IncludePreviewPacks)); } } List <Func <IDownloadedPackInfo, PreFilterResult> > preFilterList = new List <Func <IDownloadedPackInfo, PreFilterResult> >(); if (!PreviouslyRejectedPackFilter.TryGetPreviouslySkippedPacks(config.PreviousRunBasePath, out HashSet <string> nonTemplatePacks)) { Console.WriteLine("Unable to read results from the previous run."); packSourceChecker = null; return(false); } preFilterList.Add(PreviouslyRejectedPackFilter.SetupPackFilter(nonTemplatePacks)); if (!config.DontFilterOnTemplateJson) { preFilterList.Add(TemplateJsonExistencePackFilter.SetupPackFilter()); } preFilterList.Add(SkipTemplatePacksFilter.SetupPackFilter()); PackPreFilterer preFilterer = new PackPreFilterer(preFilterList); IReadOnlyList <IAdditionalDataProducer> additionalDataProducers = new List <IAdditionalDataProducer>() { new CliHostDataProducer() }; packSourceChecker = new PackSourceChecker(providers, preFilterer, additionalDataProducers, config.SaveCandidatePacks); return(true); }