Ejemplo n.º 1
0
 private bool IsSatellitePackage(JObject packageJSON)
 {
     if (!String.IsNullOrEmpty(packageJSON[Properties.PackageId].ToString()) &&
         packageJSON[Properties.PackageId].ToString().EndsWith('.' + packageJSON[Properties.Language].ToString(), StringComparison.OrdinalIgnoreCase))
     {
         // The satellite pack's Id is of the format <Core-Package-Id>.<Language>. Extract the core package id using this.
         // Additionally satellite packages have a strict dependency on the core package
         IEnumerable <PackageDependencySet> depEnum;
         var deps = packageJSON.Value <JArray>(Properties.DependencyGroups);
         if (deps == null)
         {
             depEnum = Enumerable.Empty <PackageDependencySet>();
         }
         else
         {
             depEnum = deps.Select(t => PackageJsonLd.DependencySetFromJson((JObject)t));
         }
         string corePackageId = packageJSON[Properties.PackageId].ToString().Substring(0, packageJSON[Properties.PackageId].ToString().Length - packageJSON[Properties.Language].ToString().Length - 1);
         return(depEnum.SelectMany(s => s.Dependencies).Any(
                    d => d.Id.Equals(corePackageId, StringComparison.OrdinalIgnoreCase) &&
                    d.VersionSpec != null &&
                    d.VersionSpec.MaxVersion == d.VersionSpec.MinVersion && d.VersionSpec.IsMaxInclusive && d.VersionSpec.IsMinInclusive));
     }
     return(false);
 }
 public override Task <IEnumerable <JObject> > GetAllInstalledPackagesAndMetadata()
 {
     NuGetTraceSources.CoreInteropInstalledPackagesList.Verbose("getallmetadata", "Get all installed packages and metadata");
     return(Task.FromResult(
                _localRepository
                .GetPackages().ToList()
                .Select(p => PackageJsonLd.CreatePackage(p))));
 }
Ejemplo n.º 3
0
        private static JObject UnwrapPackage(IPackage package)
        {
            CoreInteropPackage interopPackage = package as CoreInteropPackage;

            if (interopPackage == null)
            {
                return(PackageJsonLd.CreatePackage(package));
            }
            return(interopPackage.Json);
        }
        private static async Task <JObject> CreatePackageSearchResult(SourceRepository source, IPackage package)
        {
            NuGetTraceSources.CoreInteropInstalledPackagesList.Verbose("loading_versions", "Loading versions for {0} from {1}", package.Id, source.Source.Url);

            var versions = new List <SemanticVersion>();
            var packages = await source.GetPackageMetadataById(package.Id);

            foreach (var p in packages)
            {
                var v = SemanticVersion.Parse(p.Value <string>(Properties.Version));
                versions.Add(v);
            }

            var result = PackageJsonLd.CreatePackageSearchResult(package, versions);

            return(result);
        }