Пример #1
0
 /// <summary>
 /// <see cref="IRegistryQuerier.LatestAvailableWithProvides" />
 /// </summary>
 public List <CkanModule> LatestAvailableWithProvides(
     string identifier,
     KspVersionCriteria ksp_version,
     RelationshipDescriptor relationship_descriptor = null,
     IEnumerable <CkanModule> toInstall             = null)
 {
     if (providers.TryGetValue(identifier, out HashSet <AvailableModule> provs))
     {
         // For each AvailableModule, we want the latest one matching our constraints
         return(provs
                .Select(am => am.Latest(
                            ksp_version,
                            relationship_descriptor,
                            InstalledModules.Select(im => im.Module),
                            toInstall
                            ))
                .Where(m => m?.ProvidesList?.Contains(identifier) ?? false)
                .ToList());
     }
     else
     {
         // Nothing provides this, return empty list
         return(new List <CkanModule>());
     }
 }
 internal static async Task <string> GetAreaNameFromGuidAsync(bool newMods, Guid?moduleGuid)
 {
     if (moduleGuid != null && moduleGuid != Guid.Empty)
     {
         if (newMods)
         {
             InstalledModules.ModuleTypeEntry modEntry = InstalledModules.TryFindModuleEntry((Guid)moduleGuid);
             if (modEntry != null)
             {
                 return(modEntry.Package.AreaName);
             }
             else
             {
                 moduleGuid = null;
             }
         }
         else
         {
             return((from m in await DesignedModules.LoadDesignedModulesAsync() where m.ModuleGuid == (Guid)moduleGuid select m.AreaName).FirstOrDefault());
         }
     }
     return(null);
 }