public void LoadAll() { IServiceManager manager = ServiceManager.GetInstance(); ICoreServerService coreServer = manager.GetService <ICoreServerService>(); double serverVersion; double.TryParse(coreServer.GetServerVersion(), out serverVersion); foreach (IExtensibleFrameworkInterface extension in Extensions) { try { if (string.IsNullOrEmpty(extension.ExtensionName)) { throw new Exception($"Cannot be load unknown extension from assembly '{extension.GetType().Assembly.FullName}'"); } if (string.IsNullOrEmpty(extension.ExtensionVersion)) { throw new Exception($"Cannot be read extension version for '{extension.ExtensionName}'"); } if (string.IsNullOrEmpty(extension.ExtensionPublisher)) { throw new Exception($"Cannot be load unknown publisher extension for '{extension.ExtensionName}'"); } double minServerVersion = double.Parse(extension.MinServerVersion); if (serverVersion < minServerVersion) { throw new Exception($"The extension '{extension.ExtensionName}' could not be loaded because it requires server v{extension.MinServerVersion}"); } Console.ForegroundColor = ConsoleColor.Green; logger.WriteLog($" => Loading extension '{extension.ExtensionName}'"); logger.WriteLog($" => version {extension.ExtensionVersion}"); logger.WriteLog($" => by {extension.ExtensionPublisher}"); extension.Load(manager); logger.WriteLog($" => Extension '{extension.ExtensionName}' successfully loaded"); Console.ForegroundColor = ConsoleColor.White; } catch (Exception ex) { Console.ForegroundColor = ConsoleColor.Red; logger.WriteLog($"Extension '{extension.ExtensionName}' fail to load: {ex.Message}", Logging.ServerLogType.ERROR); Console.ForegroundColor = ConsoleColor.White; } } }