Esempio n. 1
0
        public DocumentStore(StoreOptions options)
        {
            options.ApplyConfiguration();
            options.Validate();

            Options    = options;
            _logger    = options.Logger();
            Serializer = options.Serializer();

            if (options.CreateDatabases != null)
            {
                IDatabaseGenerator databaseGenerator = new DatabaseGenerator();
                databaseGenerator.CreateDatabases(Tenancy, options.CreateDatabases);
            }

            Schema = Tenancy.Default.Database;

            Storage.PostProcessConfiguration();
            Events.AssertValidity(this);
            Options.Projections.AssertValidity(this);

            Advanced = new AdvancedOperations(this);

            Diagnostics = new Diagnostics(this);

            if (Options.GeneratedCodeMode == TypeLoadMode.LoadFromPreBuiltAssembly)
            {
                var rules = new GenerationRules(SchemaConstants.MartenGeneratedNamespace);
                Events.As <IGeneratesCode>().AttachPreBuiltTypes(rules, Assembly.GetEntryAssembly(), null);

                Options.As <IGeneratesCode>().AttachPreBuiltTypes(rules, Assembly.GetEntryAssembly(), null);
            }

            options.InitialData.Each(x => x.Populate(this).GetAwaiter().GetResult());
        }
Esempio n. 2
0
        public DocumentSchema(StoreOptions options, IConnectionFactory factory, IMartenLogger logger)
        {
            _factory = factory;
            _logger  = logger;

            StoreOptions = options;

            options.AllDocumentMappings.Each(x => _mappings[x.DocumentType] = x);

            _sequences = new Lazy <SequenceFactory>(() =>
            {
                var sequences = new SequenceFactory(this, _factory, options, _logger);

                var patch = new SchemaPatch();

                sequences.GenerateSchemaObjectsIfNecessary(StoreOptions.AutoCreateSchemaObjects, this, patch);

                apply(sequences, patch);

                return(sequences);
            });

            Parser = new MartenExpressionParser(StoreOptions.Serializer(), StoreOptions);

            HandlerFactory = new QueryHandlerFactory(this, options.Serializer());

            DbObjects = new DbObjects(_factory, this);


            addSystemFunction(options, "mt_immutable_timestamp");
        }
Esempio n. 3
0
 public SequenceFactory(IDocumentSchema schema, IConnectionFactory factory, StoreOptions options, IMartenLogger logger)
 {
     _schema = schema;
     _factory = factory;
     _options = options;
     _logger = logger;
 }
Esempio n. 4
0
        /// <summary>
        ///     Creates a new DocumentStore with the supplied StoreOptions
        /// </summary>
        /// <param name="options"></param>
        public DocumentStore(StoreOptions options)
        {
            options.ApplyConfiguration();
            options.CreatePatching();
            options.Validate();

            Options      = options;
            _logger      = options.Logger();
            Serializer   = options.Serializer();
            _retryPolicy = options.RetryPolicy();

            if (options.CreateDatabases != null)
            {
                IDatabaseGenerator databaseGenerator = new DatabaseGenerator();
                databaseGenerator.CreateDatabases(Tenancy, options.CreateDatabases);
            }

            Tenancy.Initialize();

            Schema = Tenancy.Schema;

            Storage.PostProcessConfiguration();
            Events.AssertValidity(this);

            Advanced = new AdvancedOperations(this);

            Diagnostics = new Diagnostics(this);

            Transform = new DocumentTransforms(this, Tenancy.Default);

            options.InitialData.Each(x => x.Populate(this));
        }
Esempio n. 5
0
 public SequenceFactory(IDocumentSchema schema, IConnectionFactory factory, StoreOptions options, IMartenLogger logger)
 {
     _schema  = schema;
     _factory = factory;
     _options = options;
     _logger  = logger;
 }
Esempio n. 6
0
        public DocumentSchema(StoreOptions options, IConnectionFactory factory, IMartenLogger logger)
        {
            _factory = factory;
            _logger  = logger;

            StoreOptions = options;

            options.AllDocumentMappings.Each(x => _mappings[x.DocumentType] = x);

            Sequences = new SequenceFactory(this, _factory, options, _logger);

            Parser = new MartenExpressionParser(StoreOptions.Serializer(), StoreOptions);

            HandlerFactory = new QueryHandlerFactory(this, options.Serializer());

            DbObjects = new DbObjects(_factory, this);
        }
Esempio n. 7
0
        public DocumentStore(StoreOptions options)
        {
            options.ApplyConfiguration();
            options.Validate();

            Options    = options;
            _logger    = options.Logger();
            Serializer = options.Serializer();


            // Workaround to make database creation lazy so all StoreOptions
            // customizations can be done first
            if (Tenancy is DefaultTenancy d)
            {
                d.Initialize();
            }

            if (options.CreateDatabases != null)
            {
                IDatabaseGenerator databaseGenerator = new DatabaseGenerator();
                databaseGenerator.CreateDatabases(Tenancy, options.CreateDatabases);
            }

            StorageFeatures.PostProcessConfiguration();
            Events.AssertValidity(this);
            Options.Projections.AssertValidity(this);

            Advanced = new AdvancedOperations(this);

            Diagnostics = new Diagnostics(this);

            _lightweightCompiledQueries  = new CompiledQueryCollection(DocumentTracking.None, this);
            _identityMapCompiledQueries  = new CompiledQueryCollection(DocumentTracking.IdentityOnly, this);
            _dirtyTrackedCompiledQueries = new CompiledQueryCollection(DocumentTracking.DirtyTracking, this);
            _queryOnlyCompiledQueries    = new CompiledQueryCollection(DocumentTracking.QueryOnly, this);
        }
Esempio n. 8
0
 public void Logger(IMartenLogger logger)
 {
     _logger = logger;
 }
 public DevelopmentSchemaCreation(IConnectionFactory factory, IMartenLogger logger)
 {
     _factory = factory;
     _logger  = logger;
 }