Exemplo n.º 1
0
 private void ProcessImportModule(IEnumerable moduleList, bool startLifeCycleEventWritten)
 {
     foreach (object obj2 in moduleList)
     {
         string name = obj2 as string;
         if (name != null)
         {
             this.ProcessImportModule(name, null, startLifeCycleEventWritten);
         }
         else
         {
             ModuleSpecification requiredModule = obj2 as ModuleSpecification;
             if (requiredModule != null)
             {
                 if ((requiredModule.Version == null) && !requiredModule.Guid.HasValue)
                 {
                     this.ProcessImportModule(requiredModule.Name, null, startLifeCycleEventWritten);
                 }
                 else
                 {
                     Collection <PSModuleInfo> moduleIfAvailable = ModuleCmdletBase.GetModuleIfAvailable(requiredModule, this);
                     if ((moduleIfAvailable != null) && (moduleIfAvailable.Count > 0))
                     {
                         foreach (PSModuleInfo info in moduleIfAvailable)
                         {
                             this.ProcessImportModule(requiredModule.Name, info, startLifeCycleEventWritten);
                         }
                     }
                     else
                     {
                         RunspaceOpenModuleLoadException exception = new RunspaceOpenModuleLoadException(StringUtil.Format(Modules.RequiredModuleNotFoundWrongGuidVersion, new object[] { requiredModule.Name, requiredModule.Guid, (requiredModule.Version == null) ? "0.0.0.0" : requiredModule.Version.ToString() }));
                         this.ValidateAndThrowRunspaceOpenModuleLoadException(null, null, startLifeCycleEventWritten, requiredModule.Name, exception);
                     }
                 }
             }
         }
     }
 }