private void SetIconUrlFromFlatContainer(IBaseMetadataDocument document) { var provider = new FlatContainerPackagePathProvider(_options.Value.FlatContainerContainerName); var iconPath = provider.GetIconPath(document.PackageId, document.NormalizedVersion); document.IconUrl = new Uri(_options.Value.ParseFlatContainerBaseUrl(), iconPath).AbsoluteUri; }
public void PopulateMetadata( IBaseMetadataDocument document, string packageId, Package package) { // If the version-specific ID is available, use it. Not all records have this value populated so fall back // to whatever package ID casing is provided. packageId = package.Id ?? packageId; document.Authors = package.FlattenedAuthors; document.Copyright = package.Copyright; document.Created = AssumeUtc(package.Created); document.Description = package.Description; document.FileSize = package.PackageFileSize; document.FlattenedDependencies = package.FlattenedDependencies; document.Hash = package.Hash; document.HashAlgorithm = package.HashAlgorithm; document.Language = package.Language; document.LastEdited = AssumeUtc(package.LastEdited); document.MinClientVersion = package.MinClientVersion; document.NormalizedVersion = package.NormalizedVersion; document.OriginalVersion = package.Version; document.PackageId = packageId; document.Prerelease = package.IsPrerelease; document.ProjectUrl = package.ProjectUrl; document.Published = package.Listed ? AssumeUtc(package.Published) : UnlistedPublished; document.ReleaseNotes = package.ReleaseNotes; document.RequiresLicenseAcceptance = package.RequiresLicenseAcceptance; document.SemVerLevel = package.SemVerLevelKey; document.SortableTitle = GetSortableTitle(package.Title, packageId); document.Summary = package.Summary; document.Tags = package.Tags == null ? null : Utils.SplitTags(package.Tags); document.Title = GetTitle(package.Title, packageId); document.TokenizedPackageId = packageId; if (package.LicenseExpression != null || package.EmbeddedLicenseType != EmbeddedLicenseFileType.Absent) { document.LicenseUrl = LicenseHelper.GetGalleryLicenseUrl( packageId, package.NormalizedVersion, _options.Value.ParseGalleryBaseUrl()); } else { document.LicenseUrl = package.LicenseUrl; } if (package.HasEmbeddedIcon || (!string.IsNullOrWhiteSpace(package.IconUrl) && _options.Value.AllIconsInFlatContainer)) { SetIconUrlFromFlatContainer(document); } else { document.IconUrl = package.IconUrl; } }
private static string TitleThenId(IBaseMetadataDocument document) { if (!string.IsNullOrWhiteSpace(document.Title)) { return(document.Title); } return(document.PackageId); }
public void PopulateMetadata( IBaseMetadataDocument document, string normalizedVersion, PackageDetailsCatalogLeaf leaf) { document.Authors = leaf.Authors; document.Copyright = leaf.Copyright; document.Created = leaf.Created; document.Description = leaf.Description; document.FileSize = leaf.PackageSize; document.FlattenedDependencies = GetFlattenedDependencies(leaf); document.Hash = leaf.PackageHash; document.HashAlgorithm = leaf.PackageHashAlgorithm; document.Language = leaf.Language; document.LastEdited = leaf.LastEdited; document.MinClientVersion = leaf.MinClientVersion; document.NormalizedVersion = normalizedVersion; document.OriginalVersion = leaf.VerbatimVersion; document.PackageId = leaf.PackageId; document.Prerelease = leaf.IsPrerelease; document.ProjectUrl = leaf.ProjectUrl; document.Published = leaf.Published; document.ReleaseNotes = leaf.ReleaseNotes; document.RequiresLicenseAcceptance = leaf.RequireLicenseAcceptance; document.SemVerLevel = leaf.IsSemVer2() ? SemVerLevelKey.SemVer2 : SemVerLevelKey.Unknown; document.SortableTitle = GetSortableTitle(leaf.Title, leaf.PackageId); document.Summary = leaf.Summary; document.Tags = leaf.Tags == null ? null : leaf.Tags.ToArray(); document.Title = GetTitle(leaf.Title, leaf.PackageId); document.TokenizedPackageId = leaf.PackageId; if (leaf.LicenseExpression != null || leaf.LicenseFile != null) { document.LicenseUrl = LicenseHelper.GetGalleryLicenseUrl( document.PackageId, normalizedVersion, _options.Value.ParseGalleryBaseUrl()); } else { document.LicenseUrl = leaf.LicenseUrl; } if (leaf.IconFile != null || (!string.IsNullOrWhiteSpace(leaf.IconUrl) && _options.Value.AllIconsInFlatContainer)) { SetIconUrlFromFlatContainer(document); } else { document.IconUrl = leaf.IconUrl; } }
private string GetIconUrl(IBaseMetadataDocument document) { // If we mandate that all icon URLs come from flat container, generate the URL. if (_options.Value.AllIconsInFlatContainer && !string.IsNullOrWhiteSpace(document.IconUrl)) { var iconPath = _pathProvider.GetIconPath(document.PackageId, document.NormalizedVersion, normalize: false); return(new Uri(_flatContainerBaseUrl, iconPath).AbsoluteUri); } return(document.IconUrl); }
private V2SearchPackage BaseMetadataDocumentToPackage(IBaseMetadataDocument document) { return(new V2SearchPackage { PackageRegistration = new V2SearchPackageRegistration { Id = document.PackageId, DownloadCount = AuxiliaryData.GetTotalDownloadCount(document.PackageId), Verified = AuxiliaryData.IsVerified(document.PackageId), PopularityTransfers = AuxiliaryData.GetPopularityTransfers(document.PackageId), }, Version = document.OriginalVersion ?? document.NormalizedVersion, NormalizedVersion = document.NormalizedVersion, Title = TitleThenId(document), Description = document.Description ?? string.Empty, Summary = document.Summary ?? string.Empty, Authors = document.Authors ?? string.Empty, Copyright = document.Copyright, Language = document.Language, Tags = document.Tags != null?string.Join(" ", document.Tags) : string.Empty, ReleaseNotes = document.ReleaseNotes, ProjectUrl = document.ProjectUrl, IconUrl = GetIconUrl(document), Created = document.Created.Value, Published = document.Published.Value, LastUpdated = document.Published.Value, LastEdited = document.LastEdited, DownloadCount = AuxiliaryData.GetDownloadCount(document.PackageId, document.NormalizedVersion), FlattenedDependencies = document.FlattenedDependencies, Dependencies = EmptyDependencies, SupportedFrameworks = Array.Empty <string>(), MinClientVersion = document.MinClientVersion, Hash = document.Hash, HashAlgorithm = document.HashAlgorithm, PackageFileSize = document.FileSize.Value, LicenseUrl = document.LicenseUrl, RequiresLicenseAcceptance = document.RequiresLicenseAcceptance ?? false, }); }