Ejemplo n.º 1
0
        public DownloadCommandHandlerIntegrationTests(
            ITestOutputHelper output,
            DefaultWebApplicationFactory <StaticFilesStartup> factory)
        {
            _logger  = new DepthLogger(new TestLogger(output));
            _factory = factory;
            _testDir = new TestDirectory();
            _dataDir = Path.Combine(_testDir, "data");
            _webRoot = Path.Combine(_testDir, "wwwroot");

            _builder = _factory.WithWebHostBuilder(b => b
                                                   .ConfigureLogging(b => b.SetMinimumLevel(LogLevel.Error))
                                                   .UseContentRoot(Directory.GetCurrentDirectory())
                                                   .UseWebRoot(_webRoot));
            _paths      = _builder.Services.GetRequiredService <ConcurrentQueue <string> >();
            _httpClient = _builder.CreateClient();

            _dd = new DataDirectoryHelper(_dataDir, DownloadDepth.CatalogLeaf, "localhost");
        }
Ejemplo n.º 2
0
        public async Task <int> InvokeAsync(InvocationContext context)
        {
            using var httpClient = new HttpClient();

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

            await ExecuteAsync(
                httpClient,
                context.ParseResult.ValueForOption(_serviceIndexUrlOption),
                context.ParseResult.ValueForOption(_dataDirOption),
                context.ParseResult.ValueForOption(_depthOption),
                context.ParseResult.ValueForOption(_jsonFormattingOption),
                context.ParseResult.ValueForOption(_maxPagesOption),
                context.ParseResult.ValueForOption(_maxCommitsOption),
                context.ParseResult.ValueForOption(_formatPathsOption),
                context.ParseResult.ValueForOption(_parallelDownloadsOption),
                depthLogger);

            return(0);
        }
        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);
        }
Ejemplo n.º 4
0
 public IndentScope(DepthLogger logger)
 {
     _logger = logger;
     Interlocked.Increment(ref _logger._depth);
 }