/// <summary> /// Add a single package /// </summary> public void AddPackageFromSingleVersionLookup( Configuration.PackageSource source, PackageIdentity identity, NuGetFramework framework, SourcePackageDependencyInfo package) { var key = new GatherSingleCacheKey(identity, source, framework); _singleVersion.TryAdd(key, package); }
/// <summary> /// Retrieve an exact version of a package /// </summary> public GatherCacheResult GetPackage( Configuration.PackageSource source, PackageIdentity package, NuGetFramework framework) { var key = new GatherSingleCacheKey(package, source, framework); var hasEntry = false; SourcePackageDependencyInfo result; hasEntry = _singleVersion.TryGetValue(key, out result); if (!hasEntry) { // Try finding the packages from cached all packages results var allPackagesResult = GetPackages(source, package.Id, framework); if (allPackagesResult.HasEntry) { hasEntry = true; // Find the exact package version in the list. The result may be null // if that version does not exist. result = allPackagesResult.Packages .Where(p => package.Equals(p)) .FirstOrDefault(); } } var packages = new List <SourcePackageDependencyInfo>(1); if (result != null) { packages.Add(result); } return(new GatherCacheResult(hasEntry, packages)); }