Esempio n. 1
0
 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>();
 }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
 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;
 }
Esempio n. 4
0
    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);
    }
Esempio n. 5
0
 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)
 {
 }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
 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
         )
 {
 }