public HiveUpdater( IHiveStorage storage, IHiveMerger merger, IEntityBuilder entityBuilder, IOptionsSnapshot <Catalog2RegistrationConfiguration> options, ILogger <HiveUpdater> logger) { _storage = storage ?? throw new ArgumentNullException(nameof(storage)); _merger = merger ?? throw new ArgumentNullException(nameof(merger)); _entityBuilder = entityBuilder ?? throw new ArgumentNullException(nameof(entityBuilder)); _options = options ?? throw new ArgumentNullException(nameof(options)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); }
public static IndexInfo Existing(IHiveStorage storage, HiveType hive, RegistrationIndex index) { // Ensure the index is sorted in ascending order by lower version bound. var sorted = index.Items .Select(pageItem => new { PageItem = pageItem, PageInfo = PageInfo.Existing(pageItem, url => GetPageAsync(storage, hive, url)), }) .OrderBy(x => x.PageInfo.Lower) .ToList(); var items = sorted.Select(x => x.PageInfo).ToList(); index.Items.Clear(); index.Items.AddRange(sorted.Select(x => x.PageItem)); return(new IndexInfo(index, items)); }
private static async Task <RegistrationPage> GetPageAsync(IHiveStorage storage, HiveType hive, string url) { return(await storage.ReadPageAsync(hive, url)); }