protected override void ProcessRecordCore() { // Since this is used for intellisense, we need to limit the number of packages that we return. Otherwise, // typing InstallPackage TAB would download the entire feed. First = MaxReturnedPackages; Preprocess(); List <JObject> packagesToDisplay = new List <JObject>(); if (!string.IsNullOrEmpty(Version)) { JObject searchResult = PowerShellPackage.GetPackageByIdAndVersion(ActiveSourceRepository, Id, Version, IncludePrerelease.IsPresent); packagesToDisplay.Add(searchResult); WritePackages(packagesToDisplay, VersionType.single); } else { if (Id == null) { Id = string.Empty; } packagesToDisplay = GetPackagesFromRemoteSource(Id, Enumerable.Empty <FrameworkName>(), IncludePrerelease.IsPresent, Skip, First).ToList(); if (ExactMatch.IsPresent) { packagesToDisplay = packagesToDisplay.Where(p => string.Equals(p.Value <string>(Properties.PackageId), Id, StringComparison.OrdinalIgnoreCase)).ToList(); } if (ListAll.IsPresent) { WritePackages(packagesToDisplay, VersionType.all); } else { WritePackages(packagesToDisplay, VersionType.latest); } } }
protected override void ProcessRecordCore() { Preprocess(); JObject package = null; try { if (Version == null || string.IsNullOrEmpty(Version.ToString())) { string latestVersion = PowerShellPackage.GetLastestVersionForPackage(ActiveSourceRepository, Id, Enumerable.Empty <FrameworkName>(), true); Version = new SemanticVersion(latestVersion); } package = PowerShellPackage.GetPackageByIdAndVersion(ActiveSourceRepository, Id, Version.ToString(), true); } catch (InvalidOperationException) { } if (package != null) { Uri targetUrl; if (License.IsPresent) { targetUrl = GetUri(package, Properties.LicenseUrl); } else if (ReportAbuse.IsPresent) { // TODO: ReportAbuseUrl is not exposed in the package registration. //targetUrl = GetUri(package, Properties.ReportAbuseUrl); targetUrl = null; } else { targetUrl = GetUri(package, Properties.ProjectUrl); } if (targetUrl != null) { OpenUrl(targetUrl); if (PassThru.IsPresent) { WriteObject(targetUrl); } } else { WriteError(String.Format(CultureInfo.CurrentCulture, Resources.Cmdlet_UrlMissing, Id + " " + Version)); } } else { // show appropriate error message depending on whether Version parameter is set. if (Version == null) { WriteError(String.Format(CultureInfo.CurrentCulture, Resources.Cmdlet_PackageIdNotFound, Id)); } else { WriteError(String.Format(CultureInfo.CurrentCulture, Resources.Cmdlet_PackageIdAndVersionNotFound, Id, Version)); } } }