/// <summary> /// Initializes a new instance of the <see cref="UmbracoDatabaseFactory"/>. /// </summary> /// <remarks>Used by the other ctor and in tests.</remarks> public UmbracoDatabaseFactory( ILogger <UmbracoDatabaseFactory> logger, ILoggerFactory loggerFactory, IOptions <GlobalSettings> globalSettings, IOptionsMonitor <ConnectionStrings> connectionStrings, IMapperCollection mappers, IDbProviderFactoryCreator dbProviderFactoryCreator, DatabaseSchemaCreatorFactory databaseSchemaCreatorFactory, NPocoMapperCollection npocoMappers) { _globalSettings = globalSettings; _mappers = mappers ?? throw new ArgumentNullException(nameof(mappers)); _dbProviderFactoryCreator = dbProviderFactoryCreator ?? throw new ArgumentNullException(nameof(dbProviderFactoryCreator)); _databaseSchemaCreatorFactory = databaseSchemaCreatorFactory ?? throw new ArgumentNullException(nameof(databaseSchemaCreatorFactory)); _npocoMappers = npocoMappers; _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _loggerFactory = loggerFactory; ConnectionStrings umbracoConnectionString = connectionStrings.Get(Constants.System.UmbracoConnectionName); if (!umbracoConnectionString.IsConnectionStringConfigured()) { logger.LogDebug("Missing connection string, defer configuration."); return; // not configured } Configure(umbracoConnectionString); }
public SqlMainDomLock( ILoggerFactory loggerFactory, IOptions <GlobalSettings> globalSettings, IOptionsMonitor <ConnectionStrings> connectionStrings, IDbProviderFactoryCreator dbProviderFactoryCreator, IMainDomKeyGenerator mainDomKeyGenerator, DatabaseSchemaCreatorFactory databaseSchemaCreatorFactory, NPocoMapperCollection npocoMappers) { // unique id for our appdomain, this is more unique than the appdomain id which is just an INT counter to its safer _lockId = Guid.NewGuid().ToString(); _logger = loggerFactory.CreateLogger <SqlMainDomLock>(); _globalSettings = globalSettings; _sqlServerSyntax = new SqlServerSyntaxProvider(_globalSettings); _dbFactory = new UmbracoDatabaseFactory( loggerFactory.CreateLogger <UmbracoDatabaseFactory>(), loggerFactory, _globalSettings, new MapperCollection(() => Enumerable.Empty <BaseMapper>()), dbProviderFactoryCreator, databaseSchemaCreatorFactory, npocoMappers, connectionStrings.CurrentValue.UmbracoConnectionString.ConnectionString); MainDomKey = MainDomKeyPrefix + "-" + mainDomKeyGenerator.GenerateKey(); }
/// <summary> /// Initializes a new instance of the <see cref="DatabaseBuilder"/> class. /// </summary> public DatabaseBuilder( IScopeProvider scopeProvider, IScopeAccessor scopeAccessor, IUmbracoDatabaseFactory databaseFactory, IRuntimeState runtimeState, ILoggerFactory loggerFactory, IKeyValueService keyValueService, IDbProviderFactoryCreator dbProviderFactoryCreator, IConfigManipulator configManipulator, IOptionsMonitor <GlobalSettings> globalSettings, IOptionsMonitor <ConnectionStrings> connectionStrings, IMigrationPlanExecutor migrationPlanExecutor, DatabaseSchemaCreatorFactory databaseSchemaCreatorFactory, IEnumerable <IDatabaseProviderMetadata> databaseProviderMetadata) { _scopeProvider = scopeProvider; _scopeAccessor = scopeAccessor; _databaseFactory = databaseFactory; _runtimeState = runtimeState; _logger = loggerFactory.CreateLogger <DatabaseBuilder>(); _keyValueService = keyValueService; _dbProviderFactoryCreator = dbProviderFactoryCreator; _configManipulator = configManipulator; _globalSettings = globalSettings; _connectionStrings = connectionStrings; _migrationPlanExecutor = migrationPlanExecutor; _databaseSchemaCreatorFactory = databaseSchemaCreatorFactory; _databaseProviderMetadata = databaseProviderMetadata; }
public SqlMainDomLock( ILogger <SqlMainDomLock> logger, ILoggerFactory loggerFactory, IOptions <GlobalSettings> globalSettings, IOptionsMonitor <ConnectionStrings> connectionStrings, IDbProviderFactoryCreator dbProviderFactoryCreator, IHostingEnvironment hostingEnvironment, DatabaseSchemaCreatorFactory databaseSchemaCreatorFactory, NPocoMapperCollection npocoMappers, string connectionStringName) { // unique id for our appdomain, this is more unique than the appdomain id which is just an INT counter to its safer _lockId = Guid.NewGuid().ToString(); _logger = logger; _globalSettings = globalSettings; _sqlServerSyntax = new SqlServerSyntaxProvider(_globalSettings); _hostingEnvironment = hostingEnvironment; _dbFactory = new UmbracoDatabaseFactory( loggerFactory.CreateLogger <UmbracoDatabaseFactory>(), loggerFactory, _globalSettings, new MapperCollection(() => Enumerable.Empty <BaseMapper>()), dbProviderFactoryCreator, databaseSchemaCreatorFactory, npocoMappers, connectionStringName); MainDomKey = MainDomKeyPrefix + "-" + (Environment.MachineName + MainDom.GetMainDomId(_hostingEnvironment)).GenerateHash <SHA1>(); }
public NewInstallStep( IUserService userService, DatabaseBuilder databaseBuilder, IHttpClientFactory httpClientFactory, IOptions <UserPasswordConfigurationSettings> passwordConfiguration, IOptions <SecuritySettings> securitySettings, IOptionsMonitor <ConnectionStrings> connectionStrings, ICookieManager cookieManager, IBackOfficeUserManager userManager, IDbProviderFactoryCreator dbProviderFactoryCreator, IEnumerable <IDatabaseProviderMetadata> databaseProviderMetadata) : this( userService, databaseBuilder, httpClientFactory, passwordConfiguration, securitySettings, connectionStrings, cookieManager, userManager, dbProviderFactoryCreator, databaseProviderMetadata, StaticServiceProvider.Instance.GetRequiredService <ILocalizedTextService>(), StaticServiceProvider.Instance.GetRequiredService <IMetricsConsentService>()) { }
public NewInstallStep( IUserService userService, DatabaseBuilder databaseBuilder, IHttpClientFactory httpClientFactory, IOptions <UserPasswordConfigurationSettings> passwordConfiguration, IOptions <SecuritySettings> securitySettings, IOptionsMonitor <ConnectionStrings> connectionStrings, ICookieManager cookieManager, IBackOfficeUserManager userManager, IDbProviderFactoryCreator dbProviderFactoryCreator, IEnumerable <IDatabaseProviderMetadata> databaseProviderMetadata, ILocalizedTextService localizedTextService, IMetricsConsentService metricsConsentService) { _userService = userService ?? throw new ArgumentNullException(nameof(userService)); _databaseBuilder = databaseBuilder ?? throw new ArgumentNullException(nameof(databaseBuilder)); _httpClientFactory = httpClientFactory; _passwordConfiguration = passwordConfiguration.Value ?? throw new ArgumentNullException(nameof(passwordConfiguration)); _securitySettings = securitySettings.Value ?? throw new ArgumentNullException(nameof(securitySettings)); _connectionStrings = connectionStrings; _cookieManager = cookieManager; _userManager = userManager ?? throw new ArgumentNullException(nameof(userManager)); _dbProviderFactoryCreator = dbProviderFactoryCreator ?? throw new ArgumentNullException(nameof(dbProviderFactoryCreator)); _databaseProviderMetadata = databaseProviderMetadata; _localizedTextService = localizedTextService; _metricsConsentService = metricsConsentService; }
/// <summary> /// Initializes a new instance of the <see cref="UmbracoDatabaseFactory"/>. /// </summary> /// <remarks>Used by the other ctor and in tests.</remarks> public UmbracoDatabaseFactory( ILogger <UmbracoDatabaseFactory> logger, ILoggerFactory loggerFactory, IOptions <GlobalSettings> globalSettings, IOptionsMonitor <ConnectionStrings> connectionStrings, IMapperCollection mappers, IDbProviderFactoryCreator dbProviderFactoryCreator, DatabaseSchemaCreatorFactory databaseSchemaCreatorFactory, NPocoMapperCollection npocoMappers) : this(logger, loggerFactory, globalSettings, mappers, dbProviderFactoryCreator, databaseSchemaCreatorFactory, npocoMappers, connectionStrings?.CurrentValue?.UmbracoConnectionString?.ConnectionString) { }
public TestUmbracoDatabaseFactoryProvider( ILoggerFactory loggerFactory, IOptions <GlobalSettings> globalSettings, IOptionsMonitor <ConnectionStrings> connectionStrings, IMapperCollection mappers, IDbProviderFactoryCreator dbProviderFactoryCreator, DatabaseSchemaCreatorFactory databaseSchemaCreatorFactory, NPocoMapperCollection npocoMappers) { _loggerFactory = loggerFactory; _globalSettings = globalSettings; _connectionStrings = connectionStrings; _mappers = mappers; _dbProviderFactoryCreator = dbProviderFactoryCreator; _databaseSchemaCreatorFactory = databaseSchemaCreatorFactory; _npocoMappers = npocoMappers; }
public UnattendedInstaller( DatabaseSchemaCreatorFactory databaseSchemaCreatorFactory, IEventAggregator eventAggregator, IOptions <UnattendedSettings> unattendedSettings, IUmbracoDatabaseFactory databaseFactory, IDbProviderFactoryCreator dbProviderFactoryCreator, ILogger <UnattendedInstaller> logger, IRuntimeState runtimeState) { _databaseSchemaCreatorFactory = databaseSchemaCreatorFactory ?? throw new ArgumentNullException(nameof(databaseSchemaCreatorFactory)); _eventAggregator = eventAggregator ?? throw new ArgumentNullException(nameof(eventAggregator)); _unattendedSettings = unattendedSettings; _databaseFactory = databaseFactory; _dbProviderFactoryCreator = dbProviderFactoryCreator; _logger = logger; _runtimeState = runtimeState; }
private static IUmbracoBuilder AddMainDom(this IUmbracoBuilder builder) { builder.Services.AddSingleton <IMainDomKeyGenerator, DefaultMainDomKeyGenerator>(); builder.Services.AddSingleton <IMainDomLock>(factory => { IOptions <GlobalSettings> globalSettings = factory.GetRequiredService <IOptions <GlobalSettings> >(); IOptionsMonitor <ConnectionStrings> connectionStrings = factory.GetRequiredService <IOptionsMonitor <ConnectionStrings> >(); IHostingEnvironment hostingEnvironment = factory.GetRequiredService <IHostingEnvironment>(); IDbProviderFactoryCreator dbCreator = factory.GetRequiredService <IDbProviderFactoryCreator>(); DatabaseSchemaCreatorFactory databaseSchemaCreatorFactory = factory.GetRequiredService <DatabaseSchemaCreatorFactory>(); ILoggerFactory loggerFactory = factory.GetRequiredService <ILoggerFactory>(); NPocoMapperCollection npocoMappers = factory.GetRequiredService <NPocoMapperCollection>(); IMainDomKeyGenerator mainDomKeyGenerator = factory.GetRequiredService <IMainDomKeyGenerator>(); switch (globalSettings.Value.MainDomLock) { case "SqlMainDomLock": return(new SqlMainDomLock( loggerFactory, globalSettings, connectionStrings, dbCreator, mainDomKeyGenerator, databaseSchemaCreatorFactory, npocoMappers)); case "MainDomSemaphoreLock": return(new MainDomSemaphoreLock( loggerFactory.CreateLogger <MainDomSemaphoreLock>(), hostingEnvironment)); case "FileSystemMainDomLock": default: return(new FileSystemMainDomLock( loggerFactory.CreateLogger <FileSystemMainDomLock>(), mainDomKeyGenerator, hostingEnvironment, factory.GetRequiredService <IOptionsMonitor <GlobalSettings> >())); } }); return(builder); }
public SqlMainDomLock( ILogger <SqlMainDomLock> logger, ILoggerFactory loggerFactory, IOptions <GlobalSettings> globalSettings, IOptionsMonitor <ConnectionStrings> connectionStrings, IDbProviderFactoryCreator dbProviderFactoryCreator, IHostingEnvironment hostingEnvironment, DatabaseSchemaCreatorFactory databaseSchemaCreatorFactory, NPocoMapperCollection npocoMappers) : this( loggerFactory, globalSettings, connectionStrings, dbProviderFactoryCreator, StaticServiceProvider.Instance.GetRequiredService <IMainDomKeyGenerator>(), databaseSchemaCreatorFactory, npocoMappers) { }
public SqlMainDomLock( ILogger <SqlMainDomLock> logger, ILoggerFactory loggerFactory, IOptions <GlobalSettings> globalSettings, IOptionsMonitor <ConnectionStrings> connectionStrings, IDbProviderFactoryCreator dbProviderFactoryCreator, IHostingEnvironment hostingEnvironment, DatabaseSchemaCreatorFactory databaseSchemaCreatorFactory, NPocoMapperCollection npocoMappers) : this( logger, loggerFactory, globalSettings, connectionStrings, dbProviderFactoryCreator, hostingEnvironment, databaseSchemaCreatorFactory, npocoMappers, connectionStrings.CurrentValue.UmbracoConnectionString.ConnectionString ) { }
/// <summary> /// Initializes a new instance of the <see cref="UmbracoDatabaseFactory"/>. /// </summary> /// <remarks>Used by the other ctor and in tests.</remarks> public UmbracoDatabaseFactory( ILogger <UmbracoDatabaseFactory> logger, ILoggerFactory loggerFactory, IOptions <GlobalSettings> globalSettings, IOptionsMonitor <ConnectionStrings> connectionStrings, IMapperCollection mappers, IDbProviderFactoryCreator dbProviderFactoryCreator, DatabaseSchemaCreatorFactory databaseSchemaCreatorFactory, NPocoMapperCollection npocoMappers) { _globalSettings = globalSettings; _mappers = mappers ?? throw new ArgumentNullException(nameof(mappers)); _dbProviderFactoryCreator = dbProviderFactoryCreator ?? throw new ArgumentNullException(nameof(dbProviderFactoryCreator)); _databaseSchemaCreatorFactory = databaseSchemaCreatorFactory ?? throw new ArgumentNullException(nameof(databaseSchemaCreatorFactory)); _npocoMappers = npocoMappers; _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _loggerFactory = loggerFactory; var settings = connectionStrings.CurrentValue.UmbracoConnectionString; if (settings == null) { logger.LogDebug("Missing connection string, defer configuration."); return; // not configured } // could as well be <add name="umbracoDbDSN" connectionString="" providerName="" /> // so need to test the values too if (settings.IsConnectionStringConfigured() == false) { logger.LogDebug("Empty connection string or provider name, defer configuration."); return; // not configured } Configure(settings.ConnectionString, settings.ProviderName); }