Ejemplo n.º 1
0
        public static IConfigurationBuilder AddCubesConfiguration(
            this IConfigurationBuilder config,
            ICubesEnvironment cubesEnvironment)
        {
            config.AddCubesConfigurationProvider(cubesEnvironment);
            config.AddYamlFile(
                cubesEnvironment.GetFileOnPath(CubesFolderKind.Config, CubesConstants.Files_DataAccess),
                optional: true,
                reloadOnChange: true);
            config.AddYamlFile(
                cubesEnvironment.GetFileOnPath(CubesFolderKind.Config, CubesConstants.Files_StaticContent),
                optional: true,
                reloadOnChange: true);
            config.AddYamlFile(
                cubesEnvironment.GetFileOnPath(CubesFolderKind.Config, CubesConstants.Files_SmtpSettings),
                optional: true,
                reloadOnChange: true);

            // Installation specific application settings
            config.AddJsonFile(
                cubesEnvironment.GetFileOnPath(CubesFolderKind.Config, CubesConstants.Files_AppSettings),
                optional: true,
                reloadOnChange: true);

            return(config);
        }
Ejemplo n.º 2
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);
        }
Ejemplo n.º 3
0
 public ConfigurationWriter(ITypeResolver typeResolver,
                            ICubesEnvironment cubesEnvironment,
                            IEnumerable <ISerializer> serializers)
 {
     _typeResolver     = typeResolver;
     _cubesEnvironment = cubesEnvironment;
     _serializers      = serializers.ToList();
 }
Ejemplo n.º 4
0
        public static IConfigurationBuilder AddApplicationsConfiguration(this IConfigurationBuilder configuration,
                                                                         ICubesEnvironment cubes)
        {
            foreach (var application in cubes.GetActivatedApplications())
            {
                application.ConfigureAppConfiguration(configuration);
            }

            return(configuration);
        }
Ejemplo n.º 5
0
        public static IServiceCollection AddApplicationsServices(this IServiceCollection services,
                                                                 ICubesEnvironment cubes)
        {
            services.AddSingleton(cubes);
            foreach (var application in cubes.GetActivatedApplications())
            {
                application.ConfigureServices(services);
            }

            return(services);
        }
Ejemplo n.º 6
0
 public UIController(IConfiguration configuration,
                     ILookupManager lookupManager,
                     ITypeResolver typeResolver,
                     ISchemaManager schemaManager,
                     ICubesEnvironment cubesEnvironment,
                     IServiceScopeFactory scopeFactory)
 {
     this.configuration    = configuration;
     this.schemaManager    = schemaManager;
     this.typeResolver     = typeResolver;
     this.lookupManager    = lookupManager;
     this.cubesEnvironment = cubesEnvironment;
     this.scopeFactory     = scopeFactory;
 }
        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}");
        }
Ejemplo n.º 8
0
        public static IHostBuilder CreateHostBuilder(string[] args, ICubesEnvironment cubes)
        {
            var configuration = new ConfigurationBuilder()
                                .SetBasePath(cubes.GetBinariesFolder())
                                .AddJsonFile(CubesConstants.Config_AppSettings, optional: false)
                                .AddCommandLine(args)
                                .Build();
            var urls = configuration.GetValue <string>(CubesConstants.Config_HostURLs, "http://localhost:3001");

            return(Microsoft.Extensions.Hosting.Host
                   .CreateDefaultBuilder(args)
                   .UseServiceProviderFactory(new AutofacServiceProviderFactory())
                   .UseWindowsService()
                   .UseContentRoot(cubes.GetRootFolder())
                   .ConfigureAppConfiguration((builder, config) =>
            {
                config.SetBasePath(cubes.GetBinariesFolder());
                config.AddCubesConfiguration(cubes);
                config.AddApplicationsConfiguration(cubes);
            })
                   .ConfigureLogging(logging =>
            {
                logging.ClearProviders();
                logging.AddNLog();
            })
                   .ConfigureContainer <ContainerBuilder>(builder =>
            {
                builder
                .RegisterCubeServices()
                .RegisterApplicationServices(cubes);
            })
                   .ConfigureServices((builder, services) =>
            {
                services.AddSingleton(cubes);
                services.AddCubesCore(builder.Configuration);

                services.AddApplicationsServices(cubes);
            })
                   .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup <Startup>();
                webBuilder.UseUrls(urls);
                webBuilder.UseWebRoot(cubes.GetFolder(CubesFolderKind.Content));
            }));
        }
Ejemplo n.º 9
0
        public Scheduler(
            IJobFactory jobFactory,
            ISchedulerFactory schedulerFactory,
            ILogger <Scheduler> logger,
            IExecutionHistoryManager historyManager,
            ICubesEnvironment cubesEnvironment)
        {
            _schedulerFactory = schedulerFactory;
            _jobFactory       = jobFactory;
            _logger           = logger;
            _historyManager   = historyManager;
            var configurationPath = cubesEnvironment
                                    .GetFileOnPath(CubesFolderKind.Config, CubesConstants.Files_Scheduling);

            _schedulerConfiguration = new ConfigurationBuilder()
                                      .AddYamlFile(configurationPath, optional: true, reloadOnChange: true)
                                      .Build();
        }
Ejemplo n.º 10
0
        public Scheduler(
            IJobFactory jobFactory,
            ISchedulerFactory schedulerFactory,
            ILogger <Scheduler> logger,
            ICubesEnvironment cubesEnvironment)
        {
            this.schedulerFactory = schedulerFactory;
            this.jobFactory       = jobFactory;
            this.logger           = logger;

            var configurationPath = cubesEnvironment
                                    .GetFileOnPath(CubesFolderKind.Settings, CubesConstants.Files_Scheduling);

            schedulerConfiguration = new ConfigurationBuilder()
                                     .AddYamlFile(configurationPath, optional: true, reloadOnChange: true)
                                     .Build();

            schedulerConfiguration.OnChange(async() => await Reload());
        }
        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);
        }
Ejemplo n.º 12
0
 private static IHostBuilder CreateHostBuilder(string[] args, ICubesEnvironment cubes)
 => Microsoft.Extensions.Hosting.Host
 .CreateDefaultBuilder(args)
 .UseServiceProviderFactory(new AutofacServiceProviderFactory())
 .UseWindowsService()
 .UseContentRoot(cubes.GetRootFolder())
 .ConfigureAppConfiguration((_, configBuilder) =>
 {
     configBuilder
     .SetBasePath(cubes.GetBinariesFolder())
     .AddCubesConfiguration(cubes)
     .AddApplicationsConfiguration(cubes);
 })
 .ConfigureLogging(logging =>
 {
     logging
     .ClearProviders()
     .AddNLog();
 })
 .ConfigureContainer <ContainerBuilder>(builder =>
 {
     builder
     .RegisterCubeServices()
     .RegisterApplicationServices(cubes);
 })
 .ConfigureServices((builder, services) =>
 {
     services
     .AddSingleton(cubes)
     .AddCubesCore(builder.Configuration)
     .AddApplicationsServices(builder.Configuration, cubes);
 })
 .ConfigureWebHostDefaults(webBuilder =>
 {
     webBuilder
     .UseStartup <Startup>()
     .UseWebRoot(cubes.GetFolder(CubesFolderKind.WebRoot));
 });
Ejemplo n.º 13
0
        public static ContainerBuilder RegisterApplicationServices(this ContainerBuilder builder, ICubesEnvironment cubes)
        {
            foreach (var application in cubes.GetApplicationInstances())
            {
                application.RegisterServices(builder);
            }

            return(builder);
        }
 public static string GetRootFolder(this ICubesEnvironment cubesEnvironment)
 => cubesEnvironment.GetFolder(CubesFolderKind.Root);
 public static string GetAppsFolder(this ICubesEnvironment cubesEnvironment)
 => cubesEnvironment.GetFolder(CubesFolderKind.Apps);
Ejemplo n.º 16
0
 public SystemController(ICubesEnvironment cubesEnvironment,
                         IApiDescriptionGroupCollectionProvider apiExplorer)
 {
     this.cubesEnvironment = cubesEnvironment;
     this.apiExplorer      = apiExplorer;
 }
 public static string GetSettingsFolder(this ICubesEnvironment cubesEnvironment)
 => cubesEnvironment.GetFolder(CubesFolderKind.Settings);
Ejemplo n.º 18
0
 public ArchiveFilesHandler(ICubesEnvironment cubesEnvironment)
 => this.cubesEnvironment = cubesEnvironment;
 public static string GetStorageFolder(this ICubesEnvironment cubesEnvironment)
 => cubesEnvironment.GetFolder(CubesFolderKind.Storage);
Ejemplo n.º 20
0
 public ArchiveFilesSampleProvider(ICubesEnvironment environment) => _environment = environment;
Ejemplo n.º 21
0
 public static string GetConfigurationFolder(this ICubesEnvironment cubesEnvironment)
 => cubesEnvironment.GetFolder(CubesFolderKind.Config);
Ejemplo n.º 22
0
 public virtual IConfigurationBuilder ConfigureAppConfiguration(
     IConfigurationBuilder configuration,
     ICubesEnvironment cubes) => configuration;
Ejemplo n.º 23
0
 public override IConfigurationBuilder ConfigureAppConfiguration(IConfigurationBuilder configuration, ICubesEnvironment cubes)
 {
     return(configuration.AddYamlFile(
                cubes.GetFileOnPath(CubesFolderKind.Config, SampleApplication.OptionsFile),
                optional: true,
                reloadOnChange: true));
 }
 public static string GetFileOnPath(this ICubesEnvironment cubesEnvironment,
                                    CubesFolderKind folderKind,
                                    string fileName)
 => Path.Combine(cubesEnvironment.GetFolder(folderKind), fileName);