Exemplo n.º 1
0
 public CsvReportUpdater(
     HttpClient httpClient,
     DownloaderConfiguration config,
     DateTimeOffset defaultCursorValue,
     IDepthLogger logger)
 {
     _httpClient         = httpClient;
     _config             = config;
     _defaultCursorValue = defaultCursorValue;
     _logger             = logger;
 }
Exemplo n.º 2
0
 public Downloader(
     HttpClient httpClient,
     DownloaderConfiguration config,
     ICursorFactory cursorProvider,
     IVisitor visitor,
     IDepthLogger logger)
 {
     _httpClient     = httpClient;
     _config         = config;
     _userAgent      = string.IsNullOrWhiteSpace(config.UserAgent) ? GetUserAgent() : config.UserAgent;
     _cursorProvider = cursorProvider;
     _visitor        = visitor;
     _logger         = logger;
 }
        public async Task <int> InvokeAsync(InvocationContext context)
        {
            using var httpClient = new HttpClient();

            var config = new DownloaderConfiguration
            {
                DataDirectory = context.ParseResult.ValueForOption(_dataDirOption),
                MaxPages      = context.ParseResult.ValueForOption(_maxPagesOption),
                MaxCommits    = context.ParseResult.ValueForOption(_maxCommitsOption),
            };

            var consoleLogger = new ConsoleLogger(_writeLine, context.ParseResult.ValueForOption(_verboseOption));
            var depthLogger   = new DepthLogger(consoleLogger);

            var csvReportUpdater = new CsvReportUpdater(
                httpClient,
                config,
                context.ParseResult.ValueForOption(_defaultCursorValueOption),
                depthLogger);

            var reports = context.ParseResult.ValueForOption(_reportsOption);

            if (reports == null || reports.Contains(ReportName.DeletedPackages))
            {
                await csvReportUpdater.UpdateAsync(new DeletedPackagesReportVisitor());
            }

            if (reports == null || reports.Contains(ReportName.CatalogLeafCount))
            {
                await csvReportUpdater.UpdateAsync(new CatalogLeafCountReportVisitor());
            }

            if (reports == null || reports.Contains(ReportName.CatalogLeafCountByType))
            {
                await csvReportUpdater.UpdateAsync(new CatalogLeafCountByTypeReportVisitor());
            }

            return(0);
        }