/// <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( ILogger <SqlMainDomLock> logger, ILoggerFactory loggerFactory, IOptions <GlobalSettings> globalSettings, IOptionsMonitor <ConnectionStrings> connectionStrings, IDbProviderFactoryCreator dbProviderFactoryCreator, IHostingEnvironment hostingEnvironment, 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 = logger; _globalSettings = globalSettings; _sqlServerSyntax = new SqlServerSyntaxProvider(_globalSettings); _hostingEnvironment = hostingEnvironment; _dbFactory = new UmbracoDatabaseFactory( loggerFactory.CreateLogger <UmbracoDatabaseFactory>(), loggerFactory, _globalSettings, connectionStrings, new MapperCollection(() => Enumerable.Empty <BaseMapper>()), dbProviderFactoryCreator, databaseSchemaCreatorFactory, npocoMappers); MainDomKey = MainDomKeyPrefix + "-" + (Environment.MachineName + MainDom.GetMainDomId(_hostingEnvironment)).GenerateHash <SHA1>(); }
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; _dbFactory = new UmbracoDatabaseFactory( loggerFactory.CreateLogger <UmbracoDatabaseFactory>(), loggerFactory, _globalSettings, connectionStrings, new MapperCollection(() => Enumerable.Empty <BaseMapper>()), dbProviderFactoryCreator, databaseSchemaCreatorFactory, npocoMappers); MainDomKey = MainDomKeyPrefix + "-" + mainDomKeyGenerator.GenerateKey(); }
/// <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); }
/// <summary> /// Initializes a new instance of the <see cref="UmbracoDatabase"/> class. /// </summary> /// <remarks> /// <para>Used by UmbracoDatabaseFactory to create databases.</para> /// <para>Also used by DatabaseBuilder for creating databases and installing/upgrading.</para> /// </remarks> public UmbracoDatabase( string connectionString, ISqlContext sqlContext, DbProviderFactory provider, ILogger <UmbracoDatabase> logger, IBulkSqlInsertProvider bulkSqlInsertProvider, DatabaseSchemaCreatorFactory databaseSchemaCreatorFactory, IEnumerable <IMapper> mapperCollection = null) : base(connectionString, sqlContext.DatabaseType, provider, sqlContext.SqlSyntax.DefaultIsolationLevel) { SqlContext = sqlContext; _logger = logger; _bulkSqlInsertProvider = bulkSqlInsertProvider; _databaseSchemaCreatorFactory = databaseSchemaCreatorFactory; _mapperCollection = mapperCollection; Init(); }
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); }