Ejemplo n.º 1
0
        /// <summary>
        /// Returns single package identity for resolver when Id is specified
        /// </summary>
        /// <returns></returns>
        private List <PackageIdentity> GetPackageIdentityForResolver()
        {
            PackageIdentity identity = null;

            // If Version is specified by commandline parameter
            if (!string.IsNullOrEmpty(Version))
            {
                NuGetVersion    nVersion  = PowerShellPackage.GetNuGetVersionFromString(Version);
                PackageIdentity pIdentity = new PackageIdentity(Id, nVersion);
                identity = Client.PackageRepositoryHelper.ResolvePackage(ActiveSourceRepository, V2LocalRepository, pIdentity, IncludePrerelease.IsPresent);
            }
            else
            {
                // Get the latest Version from package repository.
                IEnumerable <FrameworkName> frameworks = this.Projects.FirstOrDefault().GetSupportedFrameworks();
                Version  = PowerShellPackage.GetLastestVersionForPackage(ActiveSourceRepository, Id, frameworks, IncludePrerelease.IsPresent);
                identity = new PackageIdentity(Id, NuGetVersion.Parse(Version));
            }

            return(new List <PackageIdentity>()
            {
                identity
            });
        }
Ejemplo n.º 2
0
        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));
                }
            }
        }