private void LoadModule(ModuleInfo module) { Log.Debug($"Loading module {new {module.ModuleName, module.ModuleType, module.Ref}}"); if (moduleCatalog == null) { throw new InvalidOperationException("Module catalog is not set yet"); } var loadedModule = moduleCatalog.Modules.FirstOrDefault(x => x.ModuleName == module.ModuleName || x.ModuleType == module.ModuleType); if (loadedModule != null) { throw new ApplicationException($"Duplicate module found, loaded module: {loadedModule.DumpToTextRaw()}, module that was attempted to load: {module.DumpToTextRaw()}"); } moduleCatalog.AddModule(module); manager.LoadModule(module.ModuleName); }