private void FillModules(List <LmsModuleDescriptor> modules, IServiceCollection services, Type startupModuleType) { foreach (var moduleType in LmsModuleHelper.FindAllModuleTypes(startupModuleType)) { modules.Add(CreateModuleDescriptor(services, moduleType)); } }
protected virtual void SetDependencies(List <LmsModuleDescriptor> modules, LmsModuleDescriptor module) { foreach (var dependedModuleType in LmsModuleHelper.FindDependedModuleTypes(module.Type)) { var dependedModule = modules.FirstOrDefault(m => m.Type == dependedModuleType); if (dependedModule == null) { throw new LmsException("Could not find a depended module " + dependedModuleType.AssemblyQualifiedName + " for " + module.Type.AssemblyQualifiedName); } module.AddDependency(dependedModule); } }