/// <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); }
/// <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) { }
/// <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); }