/// <summary>
        /// Runs <see cref="IValidator"/>s from the <see cref="IAggregateValidator"/>s against a package.
        /// </summary>
        /// <returns>A <see cref="PackageValidationResult"/> generated from the results of the <see cref="IValidator"/>s.</returns>
        public async Task <PackageValidationResult> ValidateAsync(PackageValidatorContext context, CollectorHttpClient client, CancellationToken cancellationToken)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            if (client == null)
            {
                throw new ArgumentNullException(nameof(client));
            }

            cancellationToken.ThrowIfCancellationRequested();

            var package = new PackageIdentity(context.Package.Id, NuGetVersion.Parse(context.Package.Version));

            var deletionAuditEntries = await DeletionAuditEntry.GetAsync(
                _auditingStorageFactory,
                cancellationToken,
                package,
                logger : _logger);

            var validationContext = new ValidationContext(
                package,
                context.CatalogEntries,
                deletionAuditEntries,
                _feedToSource,
                client,
                cancellationToken,
                _contextLogger);
            var results = await Task.WhenAll(AggregateValidators.Select(endpoint => endpoint.ValidateAsync(validationContext)).ToList());

            return(new PackageValidationResult(validationContext, results));
        }
        /// <summary>
        /// Runs <see cref="IValidator"/>s from the <see cref="IAggregateValidator"/>s against a package.
        /// </summary>
        /// <returns>A <see cref="PackageValidationResult"/> generated from the results of the <see cref="IValidator"/>s.</returns>
        public async Task <PackageValidationResult> ValidateAsync(PackageValidatorContext context, CollectorHttpClient client, CancellationToken cancellationToken)
        {
            var package = new PackageIdentity(context.Package.Id, NuGetVersion.Parse(context.Package.Version));

            var deletionAuditEntries = await DeletionAuditEntry.GetAsync(
                _auditingStorageFactory,
                cancellationToken,
                package,
                logger : _logger);

            var validationContext = new ValidationContext(package, context.CatalogEntries, deletionAuditEntries, client, cancellationToken);
            var results           = await Task.WhenAll(AggregateValidators.Select(endpoint => endpoint.ValidateAsync(validationContext)).ToList());

            return(new PackageValidationResult(validationContext, results));
        }