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 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(); }
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; }
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) { }
private static IServiceProvider MockFactory(Action <Mock <IServiceProvider> > setup = null) { // FIXME: use IUmbracoDatabaseFactory vs UmbracoDatabaseFactory, clean it all up! var mock = new Mock <IServiceProvider>(); NullLoggerFactory loggerFactory = NullLoggerFactory.Instance; ILogger logger = loggerFactory.CreateLogger("GenericLogger"); var globalSettings = new GlobalSettings(); var connectionStrings = new ConnectionStrings(); var mapperCollection = new NPocoMapperCollection(() => new[] { new NullableDateMapper() }); var f = new UmbracoDatabaseFactory( loggerFactory.CreateLogger <UmbracoDatabaseFactory>(), loggerFactory, Options.Create(globalSettings), Mock.Of <IOptionsMonitor <ConnectionStrings> >(x => x.CurrentValue == connectionStrings), new MapperCollection(() => Enumerable.Empty <BaseMapper>()), TestHelper.DbProviderFactoryCreator, new DatabaseSchemaCreatorFactory(loggerFactory.CreateLogger <DatabaseSchemaCreator>(), loggerFactory, new UmbracoVersion(), Mock.Of <IEventAggregator>()), mapperCollection); var fs = new FileSystems(loggerFactory, IOHelper, Options.Create(globalSettings), Mock.Of <IHostingEnvironment>()); var coreDebug = new CoreDebugSettings(); var mediaFileManager = new MediaFileManager( Mock.Of <IFileSystem>(), Mock.Of <IMediaPathScheme>(), Mock.Of <ILogger <MediaFileManager> >(), Mock.Of <IShortStringHelper>(), Mock.Of <IServiceProvider>(), Options.Create(new ContentSettings())); IEventAggregator eventAggregator = Mock.Of <IEventAggregator>(); var scopeProvider = new ScopeProvider(f, fs, Options.Create(coreDebug), mediaFileManager, loggerFactory.CreateLogger <ScopeProvider>(), loggerFactory, NoAppCache.Instance, eventAggregator); mock.Setup(x => x.GetService(typeof(ILogger))).Returns(logger); mock.Setup(x => x.GetService(typeof(ILogger <ComponentCollection>))).Returns(loggerFactory.CreateLogger <ComponentCollection>); mock.Setup(x => x.GetService(typeof(ILoggerFactory))).Returns(loggerFactory); mock.Setup(x => x.GetService(typeof(IProfilingLogger))).Returns(new ProfilingLogger(loggerFactory.CreateLogger <ProfilingLogger>(), Mock.Of <IProfiler>())); mock.Setup(x => x.GetService(typeof(IUmbracoDatabaseFactory))).Returns(f); mock.Setup(x => x.GetService(typeof(IScopeProvider))).Returns(scopeProvider); setup?.Invoke(mock); return(mock.Object); }
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 ) { }