private void ProcessNuspecContent(NuspecReader reader) { if (Specification.Id == null) { Update(reader.GetId(), (id) => Specification.Id = id); } UpdateUrl(reader.GetLicenseUrl(), url => Specification.LicenseUrl = url, DEFAULT_LICENCE_URL); UpdateUrl(reader.GetProjectUrl(), url => Specification.ProjectUrl = url, DEFAULT_PROJECT_URL); UpdateUrl(reader.GetIconUrl(), url => Specification.IconUrl = url, DEFAULT_ICON_URL); UpdateList(reader.GetAuthors(), list => Specification.Authors = list); UpdateList(reader.GetOwners(), list => Specification.Owners = list); Update(reader.GetReleaseNotes(), notes => Specification.ReleaseNotes = notes, DEFAULT_RELEASE_NOTES); Update(reader.GetCopyright(), copyright => Specification.Copyright = copyright); UpdateList(reader.GetTags(), list => Specification.Tags = list, ' ', DEFAULT_TAGS); Update(reader.GetDescription(), desc => Specification.Description = desc); }
public ServerPackage(NuspecReader package, PackageDerivedData packageDerivedData) { Id = package.GetId(); Version = package.GetVersion(); Title = package.GetTitle(); Authors = package.GetAuthors(); Owners = package.GetOwners(); IconUrl = package.GetIconUrl(); LicenseUrl = package.GetLicenseUrl(); ProjectUrl = package.GetProjectUrl(); RequireLicenseAcceptance = package.GetRequireLicenseAcceptance(); DevelopmentDependency = package.GetDevelopmentDependency(); Description = package.GetDescription(); Summary = package.GetSummary(); ReleaseNotes = package.GetReleaseNotes(); Language = package.GetLanguage(); Tags = package.GetTags(); Copyright = package.GetCopyright(); MinClientVersion = package.GetMinClientVersion(); ReportAbuseUrl = null; DownloadCount = 0; SemVer1IsAbsoluteLatest = false; SemVer1IsLatest = false; SemVer2IsAbsoluteLatest = false; SemVer2IsLatest = false; //FIXME is this OK? Listed = true; IsSemVer2 = IsPackageSemVer2(package); _dependencySets = package.GetDependencyGroups().ToList(); Dependencies = _dependencySets.DependencySetsAsString(); _supportedFrameworks = package.GetFrameworkReferenceGroups().Select(f => f.TargetFramework).ToList(); SupportedFrameworks = string.Join("|", _supportedFrameworks.Select(f => f.GetFrameworkString())); PackageSize = packageDerivedData.PackageSize; PackageHash = packageDerivedData.PackageHash; PackageHashAlgorithm = packageDerivedData.PackageHashAlgorithm; LastUpdated = packageDerivedData.LastUpdated; Created = packageDerivedData.Created; Path = packageDerivedData.Path; FullPath = packageDerivedData.FullPath; }
private static async Task WritePackageNotice(StreamWriter writer, NuspecReader package) { await writer.WriteAsync("License notice for ").ConfigureAwait(false); await writer.WriteAsync(package.GetId()).ConfigureAwait(false); await writer.WriteAsync(" (v").ConfigureAwait(false); await writer.WriteAsync(package.GetVersion().ToFullString()).ConfigureAwait(false); await writer.WriteLineAsync(")").ConfigureAwait(false); await writer.WriteLineAsync("------------------------------------").ConfigureAwait(false); var repository = package.GetRepositoryMetadata(); if (!string.IsNullOrEmpty(repository?.Url)) { await writer.WriteLineAsync().ConfigureAwait(false); await writer.WriteAsync(repository.Url).ConfigureAwait(false); if (!string.IsNullOrEmpty(repository.Commit)) { await writer.WriteAsync(" at ").ConfigureAwait(false); await writer.WriteAsync(repository.Commit).ConfigureAwait(false); } await writer.WriteLineAsync().ConfigureAwait(false); } string projectUrl = package.GetProjectUrl(); if (projectUrl != repository?.Url) { await WriteIfNotEmpty(writer, string.Empty, projectUrl).ConfigureAwait(false); } string copyright = package.GetCopyright(); string copyrightPrefix = string.Empty; if (copyright?.Length > 0 && copyright[0] == '©') { copyrightPrefix = "Copyright "; } await WriteIfNotEmpty(writer, copyrightPrefix, copyright).ConfigureAwait(false); var license = package.GetLicenseMetadata(); if (license != null) { string licenseExpression = license.LicenseExpression?.ToString(); await WriteIfNotEmpty(writer, "Licensed under ", licenseExpression).ConfigureAwait(false); await WriteIfNotEmpty(writer, "Available at ", license.LicenseUrl?.AbsoluteUri).ConfigureAwait(false); if (license.License != licenseExpression) { await WriteIfNotEmpty(writer, string.Empty, license.License).ConfigureAwait(false); } } else { await WriteIfNotEmpty(writer, "License available at ", package.GetLicenseUrl()).ConfigureAwait(false); } await writer.WriteLineAsync().ConfigureAwait(false); await writer.WriteLineAsync().ConfigureAwait(false); }