示例#1
0
 public CsvReportUpdater(
     HttpClient httpClient,
     DownloaderConfiguration config,
     DateTimeOffset defaultCursorValue,
     IDepthLogger logger)
 {
     _httpClient         = httpClient;
     _config             = config;
     _defaultCursorValue = defaultCursorValue;
     _logger             = logger;
 }
示例#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;
 }
示例#3
0
        public static async Task ExecuteAsync(
            HttpClient httpClient,
            string serviceIndexUrl,
            string dataDir,
            DownloadDepth depth,
            JsonFormatting jsonFormatting,
            int?maxPages,
            int?maxCommits,
            bool formatPaths,
            int parallelDownloads,
            IDepthLogger logger)
        {
            var cursorProvider = new CursorFactory(
                cursorSuffix: $"download.{depth}",
                defaultCursorValue: DateTimeOffset.MinValue,
                logger: logger);

            var downloader = new Downloader(
                httpClient,
                new DownloaderConfiguration
            {
                ServiceIndexUrl   = serviceIndexUrl,
                DataDirectory     = dataDir,
                Depth             = depth,
                JsonFormatting    = jsonFormatting,
                MaxPages          = maxPages,
                MaxCommits        = maxCommits,
                SaveToDisk        = true,
                FormatPaths       = formatPaths,
                ParallelDownloads = parallelDownloads,
            },
                cursorProvider,
                NullVisitor.Instance,
                logger);

            await downloader.DownloadAsync();
        }
示例#4
0
 public Cursor(string cursorPath, DateTimeOffset defaultCursorValue, IDepthLogger logger)
 {
     _cursorPath         = cursorPath;
     _defaultCursorValue = defaultCursorValue;
     _logger             = logger;
 }
示例#5
0
 public CursorFactory(string cursorSuffix, DateTimeOffset defaultCursorValue, IDepthLogger logger)
 {
     _cursorSuffix       = cursorSuffix;
     _defaultCursorValue = defaultCursorValue;
     _logger             = logger;
 }