public CsvReportUpdater( HttpClient httpClient, DownloaderConfiguration config, DateTimeOffset defaultCursorValue, IDepthLogger logger) { _httpClient = httpClient; _config = config; _defaultCursorValue = defaultCursorValue; _logger = logger; }
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 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(); }
public Cursor(string cursorPath, DateTimeOffset defaultCursorValue, IDepthLogger logger) { _cursorPath = cursorPath; _defaultCursorValue = defaultCursorValue; _logger = logger; }
public CursorFactory(string cursorSuffix, DateTimeOffset defaultCursorValue, IDepthLogger logger) { _cursorSuffix = cursorSuffix; _defaultCursorValue = defaultCursorValue; _logger = logger; }