Example #1
0
        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);
        }