/// <summary> /// Queries the gallery database for the package specified by the <see cref="ValidationContext"/> and returns a <see cref="PackageTimestampMetadata"/>. /// If the package is missing from the repository, returns the package's deletion audit record timestamp. /// </summary> public async Task <PackageTimestampMetadata> GetAsync(ValidationContext context) { var feedPackageDetails = await _galleryDatabase.GetPackageOrNull( context.Package.Id, context.Package.Version.ToNormalizedString()); if (feedPackageDetails != null) { return(PackageTimestampMetadata.CreateForExistingPackage( feedPackageDetails.CreatedDate, feedPackageDetails.LastEditedDate)); } DateTime?deleted = null; if (context.DeletionAuditEntries.Any()) { deleted = context.DeletionAuditEntries.Max(entry => entry.TimestampUtc); } return(PackageTimestampMetadata.CreateForMissingPackage(deleted)); }
private Task <FeedPackageDetails> GetPackageAsync(PackageIdentity package) { return(_galleryDatabase.GetPackageOrNull(package.Id, package.Version.ToNormalizedString())); }