private void LogFetching(string fetched, PackageRegistrationRange range) { if (range.MaxKey.HasValue) { _logger.LogInformation( "Fetching " + fetched + " with package registration key >= {MinKey} and <= {MaxKey} (~{Count} packages).", range.MinKey, range.MaxKey, range.PackageCount); } else { _logger.LogInformation("Fetching " + fetched + " with package registration key >= {MinKey} (~{Count} packages).", range.MinKey, range.PackageCount); } }
private async Task <IReadOnlyList <Package> > GetPackagesAsync(PackageRegistrationRange range) { using (var context = await CreateContextAsync()) { var minKey = range.MinKey; var query = context .Set <Package>() .Include(x => x.PackageRegistration) .Include(x => x.PackageTypes) .Where(p => p.PackageStatusKey == PackageStatus.Available) .Where(p => p.PackageRegistrationKey >= minKey); if (range.MaxKey.HasValue) { var maxKey = range.MaxKey.Value; query = query .Where(p => p.PackageRegistrationKey <= maxKey); } LogFetching("packages", range); return(await query.ToListAsync()); } }
private async Task <IReadOnlyList <PackageRegistrationInfo> > GetPackageRegistrationInfoAsync(PackageRegistrationRange range) { using (var context = await CreateContextAsync()) { var minKey = range.MinKey; var query = context .Set <PackageRegistration>() .Include(x => x.Owners) .Where(pr => pr.Key >= minKey); if (range.MaxKey.HasValue) { var maxKey = range.MaxKey.Value; query = query .Where(pr => pr.Key <= maxKey); } LogFetching("owners", range); var packageRegistrations = await query.ToListAsync(); return(packageRegistrations .Where(pr => !ShouldSkipPackageRegistration(pr)) .Select(pr => new PackageRegistrationInfo( pr.Key, pr.Id, pr.Owners.Select(x => x.Username).ToArray(), pr.IsVerified)) .ToList()); } }