Exemple #1
0
        public static IConfigurationBuilder AddCubesConfigurationProvider(this IConfigurationBuilder configuration,
                                                                          ICubesEnvironment cubes)
        {
            const string section     = CubesConstants.Configuration_Section;
            var          cubesConfig = new Dictionary <string, string>
            {
                { $"{section}:Version", cubes.GetEnvironmentInformation().FullVersion },
                { $"{section}:RootFolder", cubes.GetRootFolder() },
                { $"{section}:AdminPath", cubes.GetAdminPath() },
                { $"{section}:ContentFolder", cubes.GetFolder(CubesFolderKind.Content) },
                { $"{section}:LibrariesFolder", cubes.GetFolder(CubesFolderKind.Libraries) },
                { $"{section}:LogsFolder", cubes.GetFolder(CubesFolderKind.Logs) },
                { $"{section}:ConfigFolder", cubes.GetConfigurationFolder() },
                { $"{section}:StorageFolder", cubes.GetStorageFolder() },
                { $"{section}:TempFolder", cubes.GetFolder(CubesFolderKind.Temp) },
                { $"{section}:WebRootFolder", cubes.GetFolder(CubesFolderKind.WebRoot) },
                { $"{section}:BinariesFolder", cubes.GetBinariesFolder() },
            };
            var swaggerFiles = cubes
                               .GetSwaggerXmlFiles()
                               .Select((f, i) => new KeyValuePair <string, string>($"{section}:SwaggerXMLFiles:{i}", f))
                               .ToList();

            foreach (var item in swaggerFiles)
            {
                cubesConfig.Add(item.Key, item.Value);
            }

            configuration.AddInMemoryCollection(cubesConfig);
            return(configuration);
        }
        public LiteDbExecutionHistoryManager(ICubesEnvironment cubesEnvironment,
                                             IConfiguration configuration,
                                             ILogger <LiteDbExecutionHistoryManager> logger)
        {
            var retentionString = configuration.GetValue(CubesConstants.Config_JobsHistoryRetention, "LastWeek");

            _defaultRetention = Retention.FromString(retentionString);

            var path = Path.Combine(cubesEnvironment.GetStorageFolder(), CubesConstants.ExecutionHistory_File);

            _liteDb  = new LiteDatabase(path);
            _cleanup = new Timer(CleanupCallback, null, 3 * 1000, _cleanupIntervalSeconds * 1000);

            _logger = logger;
            _logger.LogInformation($"Execution history manager with retention {_defaultRetention}");
        }
        public static IConfigurationBuilder AddCubesConfigurationProvider(this IConfigurationBuilder configuration,
                                                                          ICubesEnvironment cubes)
        {
            var cubesConfig = new Dictionary <string, string>
            {
                { $"{CubesConstants.Configuration_Section}:Version", cubes.GetEnvironmentInformation().FullVersion },
                { $"{CubesConstants.Configuration_Section}:RootFolder", cubes.GetRootFolder() },
                { $"{CubesConstants.Configuration_Section}:AppsFolder", cubes.GetAppsFolder() },
                { $"{CubesConstants.Configuration_Section}:LogsFolder", cubes.GetFolder(CubesFolderKind.Logs) },
                { $"{CubesConstants.Configuration_Section}:SettingsFolder", cubes.GetSettingsFolder() },
                { $"{CubesConstants.Configuration_Section}:StorageFolder", cubes.GetStorageFolder() },
                { $"{CubesConstants.Configuration_Section}:TempFolder", cubes.GetFolder(CubesFolderKind.Temp) },
                { $"{CubesConstants.Configuration_Section}:StaticContentFolder", cubes.GetFolder(CubesFolderKind.Content) },
                { $"{CubesConstants.Configuration_Section}:BinariesFolder", cubes.GetBinariesFolder() },
            };
            var swaggerFiles = cubes
                               .GetSwaggerFiles()
                               .Select((f, i) => new KeyValuePair <string, string>($"{CubesConstants.Configuration_Section}:SwaggerFiles:{i}", f))
                               .ToList();

            foreach (var item in swaggerFiles)
            {
                cubesConfig.Add(item.Key, item.Value);
            }

            var allAssembliesWithControllers = cubes
                                               .GetActivatedApplications()
                                               .SelectMany(app => app.AssembliesWithControllers.ToList())
                                               .Select((f, i) => new KeyValuePair <string, string>($"{CubesConstants.Configuration_Section}:AssembliesWithControllers:{i}", f))
                                               .ToList();

            foreach (var item in allAssembliesWithControllers)
            {
                cubesConfig.Add(item.Key, item.Value);
            }

            configuration.AddInMemoryCollection(cubesConfig);
            return(configuration);
        }