public Package GetOwnerPackage(string path) { return(LocalPackages.FirstOrDefault(ele => ele.ContainsFile(path))); }
public Package GetOwnerPackage(Type t) { return(LocalPackages.FirstOrDefault(package => package.LoadedTypes.Contains(t))); }
public Package ScanPackageDirectory(string directory, bool checkCertificates) { try { var headerPath = Path.Combine(directory, "pkg.json"); Package discoveredPackage; // get the package name and the installed version if (PathHelper.IsValidPath(headerPath)) { discoveredPackage = Package.FromJson(headerPath, AsLogger()); if (discoveredPackage == null) { throw new LibraryLoadFailedException(directory, String.Format(Properties.Resources.MalformedHeaderPackage, headerPath)); } } else { throw new LibraryLoadFailedException(directory, String.Format(Properties.Resources.NoHeaderPackage, headerPath)); } // prevent loading unsigned packages if the certificates are required on package dlls if (checkCertificates) { CheckPackageNodeLibraryCertificates(directory, discoveredPackage); } var discoveredVersion = CheckAndGetPackageVersion(discoveredPackage.VersionName, discoveredPackage.Name, discoveredPackage.RootDirectory); var existingPackage = LocalPackages.FirstOrDefault(package => (package.Name == discoveredPackage.Name) && (package.LoadState.State != PackageLoadState.StateTypes.Unloaded)); // Is this a new package? if (existingPackage == null) { Add(discoveredPackage); return(discoveredPackage); // success } // Conflict invloving a built-in package if (discoveredPackage.BuiltInPackage || existingPackage.BuiltInPackage) { // We show both packages but we mark the new one as unloaded. discoveredPackage.LoadState.SetAsUnloaded(); Add(discoveredPackage); } var existingVersion = CheckAndGetPackageVersion(existingPackage.VersionName, existingPackage.Name, existingPackage.RootDirectory); // Is this a duplicated package? if (existingVersion == discoveredVersion) { // Duplicated with the same version throw new LibraryLoadFailedException(directory, String.Format(Properties.Resources.DulicatedPackage, discoveredPackage.Name, discoveredPackage.RootDirectory)); } // Is the existing version newer? if (existingVersion > discoveredVersion) { // Older version found, show notification throw new LibraryLoadFailedException(directory, String.Format(Properties.Resources.DuplicatedOlderPackage, existingPackage.Name, discoveredPackage.RootDirectory, existingVersion.ToString(), discoveredVersion.ToString())); } // Newer version found, show notification. throw new LibraryLoadFailedException(directory, String.Format(Properties.Resources.DuplicatedNewerPackage, existingPackage.Name, discoveredPackage.RootDirectory, existingVersion.ToString(), discoveredVersion.ToString())); } catch (Exception e) { Log(String.Format(Properties.Resources.ExceptionEncountered, directory), WarningLevel.Error); Log(e); } return(null); }
public Package GetPackageFromRoot(string path) { return(LocalPackages.FirstOrDefault(pkg => pkg.RootDirectory == path)); }
public void UpdateLocalDependency(BaseVersion dependency) { CurrentLocalDependency = dependency == null ? _globalJoker : (LocalPackages.FirstOrDefault(x => x.Equals(dependency)) ?? _globalJoker); }