Exemple #1
0
 private bool allDependenciesCompatible(CkanModule mod, KspVersionCriteria ksp_version)
 {
     // we need to check that we can get everything we depend on
     if (mod.depends != null)
     {
         foreach (RelationshipDescriptor dependency in mod.depends)
         {
             try
             {
                 if (!dependency.MatchesAny(null, InstalledDlls.ToHashSet(), InstalledDlc) &&
                     !LatestAvailableWithProvides(dependency.name, ksp_version).Any())
                 {
                     return(false);
                 }
             }
             catch (KeyNotFoundException e)
             {
                 log.ErrorFormat("Cannot find available version with provides for {0} in registry", dependency.name);
                 throw e;
             }
             catch (ModuleNotFoundKraken)
             {
                 return(false);
             }
         }
     }
     return(true);
 }
Exemple #2
0
 /// <summary>
 /// Partition all CkanModules in available_modules into
 /// compatible and incompatible groups.
 /// </summary>
 /// <param name="versCrit">Version criteria to determine compatibility</param>
 public void SetCompatibleVersion(KspVersionCriteria versCrit)
 {
     if (!versCrit.Equals(sorter?.CompatibleVersions))
     {
         sorter = new CompatibilitySorter(
             versCrit, available_modules, providers,
             InstalledDlls.ToHashSet(), _installedDlcModules
             );
     }
 }