public async Task <NuGetPackageVersion> ViewPackageVersionInfo(string packageID, string packageVersion,
                                                                       string source)
        {
            if (string.IsNullOrEmpty(packageID))
            {
                throw new ArgumentNullException("packageID");
            }

            if (string.IsNullOrEmpty(source))
            {
                throw new ArgumentNullException("source");
            }

            if (string.IsNullOrEmpty(packageVersion))
            {
                throw new ArgumentNullException("packageVersion");
            }

            NuGetFactory factory      = new NuGetFactory(source);
            var          metaResource = await factory.GetUIMetadata();

            var versionIdentity = new PackageIdentity(packageID, NuGetVersion.Parse(packageVersion));

            return(await CacheGetVersionMeta(metaResource, versionIdentity, false));
        }
Esempio n. 2
0
        public async Task GetCachedPackageInfo(string PackageID)
        {
            NuGetFactory factory = new NuGetFactory("NuGet", "https://api.nuget.org/v3/index.json");
            var metaResource = await factory.GetUIMetadata();
            var searchResource = await factory.GetSearch();

            var packageMeta = await searchResource.Search(PackageID, new SearchFilter { IncludePrerelease = true }, 0, 100, CancellationToken.None);
            var packagesFound = packageMeta.Where(x => x.Identity.Id.Equals(PackageID, StringComparison.InvariantCultureIgnoreCase)).ToList();

            Assert.False(packagesFound.Count == 0);
            Assert.True(packagesFound.Count > 0);

            var nugetPackage = packagesFound.First();
            var versions = await (await factory.GetMetadata()).GetVersions(PackageID, CancellationToken.None);

            foreach (var version in versions)
            {
                var versionIdentity = new PackageIdentity(nugetPackage.Identity.Id, version);
                var meta = await metaResource.GetMetadata(versionIdentity, CancellationToken.None);
                foreach (var item in meta.DependencySets)
                {
                    Assert.NotNull(item.TargetFramework.Framework);
                }
            }
        }
        public async Task <NuGetPackageViewResponse> ViewPackageInfo(string packageID, string source)
        {
            if (string.IsNullOrEmpty(packageID))
            {
                throw new ArgumentNullException("packageID");
            }

            if (string.IsNullOrEmpty(source))
            {
                throw new ArgumentNullException("source");
            }

            NuGetFactory factory = new NuGetFactory(source);
            var          model   = new NuGetPackageViewResponse();

            model.Request.PackageID = packageID;
            model.Request.SourceUrl = factory.SourceUrl;
            model.Request.Source    = source;

            var metaResource = await factory.GetUIMetadata();

            var versions = (await CacheGetAllVersionsOfPackage(factory, packageID)).Reverse().Take(10);

            foreach (var version in versions)
            {
                var packageVersion = new NuGetPackageVersion();

                #region Meta
                var versionIdentity = new PackageIdentity(packageID, version);
                packageVersion = await CacheGetVersionMeta(metaResource, versionIdentity, true);

                #endregion

                #region Version Specific
                packageVersion.IsReleaseVersion = !version.IsPrerelease;
                packageVersion.IsLegacy         = version.IsLegacyVersion;
                packageVersion.IsPreRelease     = version.IsPrerelease;
                packageVersion.Version          = version.ToNormalizedString();
                packageVersion.OrderKey         = packageVersion.LastUpdatedDate.ToString("yyyyMMdd") + packageVersion.Version;
                packageVersion.LastUpdated      = (packageVersion.LastUpdatedDate == DateTime.MinValue)
                    ? string.Empty : packageVersion.LastUpdatedDate.ToString("MMM dd, yyyy");
                #endregion

                model.Versions.Add(packageVersion);
            }

            model.Versions      = model.Versions.OrderByDescending(x => x.OrderKey).ToList();
            model.LatestVersion = model.Versions.FirstOrDefault();

            return(model);
        }
        public async Task<NuGetPackageViewResponse> ViewPackageInfo(string packageID, string source)
        {
            if (string.IsNullOrEmpty(packageID))
                throw new ArgumentNullException("packageID");

            if (string.IsNullOrEmpty(source))
                throw new ArgumentNullException("source");

            NuGetFactory factory = new NuGetFactory(source);
            var model = new NuGetPackageViewResponse();
            model.Request.PackageID = packageID;
            model.Request.SourceUrl = factory.SourceUrl;
            model.Request.Source = source;

            var metaResource = await factory.GetUIMetadata();
            var versions = (await CacheGetAllVersionsOfPackage(factory, packageID)).Reverse().Take(10);

            foreach (var version in versions)
            {
                var packageVersion = new NuGetPackageVersion();

                #region Meta
                var versionIdentity = new PackageIdentity(packageID, version);
                packageVersion = await CacheGetVersionMeta(metaResource, versionIdentity, true);
                #endregion

                #region Version Specific
                packageVersion.IsReleaseVersion = !version.IsPrerelease;
                packageVersion.IsLegacy = version.IsLegacyVersion;
                packageVersion.IsPreRelease = version.IsPrerelease;
                packageVersion.Version = version.ToNormalizedString();
                packageVersion.OrderKey = packageVersion.LastUpdatedDate.ToString("yyyyMMdd") + packageVersion.Version;
                packageVersion.LastUpdated = (packageVersion.LastUpdatedDate == DateTime.MinValue)
                    ? string.Empty : packageVersion.LastUpdatedDate.ToString("MMM dd, yyyy");
                #endregion

                model.Versions.Add(packageVersion);
            }

            model.Versions = model.Versions.OrderByDescending(x => x.OrderKey).ToList();
            model.LatestVersion = model.Versions.FirstOrDefault();

            return model;
        }
        public async Task<NuGetPackageVersion> ViewPackageVersionInfo(string packageID, string packageVersion,
                string source)
        {
            if (string.IsNullOrEmpty(packageID))
                throw new ArgumentNullException("packageID");

            if (string.IsNullOrEmpty(source))
                throw new ArgumentNullException("source");

            if (string.IsNullOrEmpty(packageVersion))
                throw new ArgumentNullException("packageVersion");

            NuGetFactory factory = new NuGetFactory(source);
            var metaResource = await factory.GetUIMetadata();
            var versionIdentity = new PackageIdentity(packageID, NuGetVersion.Parse(packageVersion));

            return await CacheGetVersionMeta(metaResource, versionIdentity, false);
        }
Esempio n. 6
0
        public async Task DependencyTest(string keyword, string version, string framework, bool hasDependencies)
        {
            var factory = new NuGetFactory("NuGet", "https://api.nuget.org/v3/index.json");
            var baseMetaResource = await factory.GetMetadata();
            var metaResource = await factory.GetUIMetadata();
            var depResource = await factory.GetDependency();
            var searchResource = await factory.GetSearch();

            var versionNG = new NuGetVersion(version);
            var fx = NuGetFramework.Parse(framework);
            var packageId = new PackageIdentity(keyword, versionNG);

            Assert.NotNull(fx);
            Assert.NotNull(versionNG);

            // Search with keyword
            var filter = new SearchFilter { IncludePrerelease = true };
            var packagesFound = await searchResource.Search(keyword, filter, 0, 10, CancellationToken.None);
            foreach (var package in packagesFound)
            {
                Assert.NotNull(package.Identity.Id);
                Assert.NotNull(package.Identity.Version);
                Debug.WriteLine(package.Identity.ToString());
                Debug.WriteLine(package.Identity.Version.ToNormalizedString());
            }

            // Get metadata for packageId
            var metaResult = await metaResource.GetMetadata(packageId.Id, true, false, CancellationToken.None);
            var versions = await (await factory.GetMetadata()).GetVersions(packageId.Id, CancellationToken.None);

            foreach (var uiPackageMetadata in metaResult)
            {
                foreach (var dset in uiPackageMetadata.DependencySets)
                {
                    Assert.NotNull(dset.TargetFramework.DotNetFrameworkName);
                    foreach (var depends in dset.Packages)
                    {
                        Debug.WriteLine(depends.ToString());
                        Assert.NotNull(depends.ToString());
                    }
                }
            }

            foreach (var versionF in versions)
            {
                Assert.NotNull(versionF.ToNormalizedString());
            }


            // Get dependency for packageId + version + fx
            var packageDependencyInfo = await depResource.ResolvePackage(packageId, fx, CancellationToken.None);
            foreach (var dependency in packageDependencyInfo.Dependencies)
            {
                var allVersions = await baseMetaResource.GetVersions(dependency.Id, CancellationToken.None);
                var bestMatch = dependency.VersionRange.FindBestMatch(allVersions);

                Assert.NotNull(bestMatch);
            }
        }