public ModuleLoaderManager( string moduleDirectory, IGrpcRegistrar grpcRegistrar, Infrastructure.IFtpClient ftpClient, CidaContext databaseContext, IDatabaseConnector databaseConnector, ILogger logger, GlobalConfigurationService globalConfigurationService, IModuleFtpClientFactory moduleFtpClientFactory, IModuleLoggerFactory moduleLoggerFactory, IEnumerable <string> unpackedModuleDirectories = null) { this.moduleDirectory = moduleDirectory; this.unpackedModuleDirectories = unpackedModuleDirectories ?? Array.Empty <string>(); this.grpcRegistrar = grpcRegistrar; this.ftpClient = ftpClient; this.databaseContext = databaseContext; this.databaseConnector = databaseConnector; this.logger = logger; this.globalConfigurationService = globalConfigurationService; this.moduleFtpClientFactory = moduleFtpClientFactory; this.moduleLoggerFactory = moduleLoggerFactory; this.modules = new ConcurrentDictionary <Guid, CidaModule>(); this.unpackedModules = new ConcurrentBag <Guid>(); if (!Directory.Exists(moduleDirectory)) { Directory.CreateDirectory(moduleDirectory); } }
public CidaServer(string workingDirectory, ISettingsProvider settingsProvider, ILogger logger) { this.settingsProvider = settingsProvider; this.logger = logger; this.grpcManager = new GrpcManager(settingsProvider.Get <GrpcConfiguration>(), this.logger); this.globalConfigurationService = new GlobalConfigurationService(this.logger); this.ftpClient = new FtpClient(this.globalConfigurationService, this.logger); this.databaseProvider = new CidaDbConnectionProvider(this.globalConfigurationService); this.cidaContext = new CidaContext(this.databaseProvider); this.moduleLoader = new ModuleLoaderManager( Path.Combine(workingDirectory, ModuleLoaderManager.ModuleFolderName), this.grpcManager, this.ftpClient, this.cidaContext, new DatabaseConnector(this.cidaContext, this.databaseProvider, this.globalConfigurationService), this.logger, this.globalConfigurationService, new ModuleFtpClientFactory(ftpClient), new ModuleLoggerFactory(NLog.LogManager.LogFactory), this.settingsProvider.Get <ServerConfiguration>().UnpackedModuleDirectories); this.interNodeConnectionManager = new InterNodeConnectionManager( this.settingsProvider.Get <InfrastructureConfiguration>(), this.globalConfigurationService); }