Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
        }