Пример #1
0
        public void Configure(JasperRegistry registry)
        {
            registry.Services.AddTransient <IEnvelopePersistence, PostgresqlEnvelopePersistence>();
            registry.Settings.Alter <StoreOptions>(options =>
            {
                options.Schema.For <ErrorReport>().Duplicate(x => x.MessageType).Duplicate(x => x.ExceptionType);
            });

            registry.CodeGeneration.Sources.Add(new MartenBackedPersistenceMarker());

            var frameProvider = new MartenSagaPersistenceFrameProvider();

            registry.CodeGeneration.SagaPersistence = frameProvider;
            registry.CodeGeneration.Transactions    = frameProvider;
        }
        public void Configure(JasperOptionsBuilder registry)
        {
            registry.Services.AddTransient <IEnvelopePersistor, MartenEnvelopePersistor>();
            registry.Services.AddSingleton <IDurableMessagingFactory, MartenBackedDurableMessagingFactory>();
            registry.Settings.Alter <StoreOptions>(options =>
            {
                options.Storage.Add <PostgresqlEnvelopeStorage>();
                options.Schema.For <ErrorReport>().Duplicate(x => x.MessageType).Duplicate(x => x.ExceptionType);
            });

            registry.Services.AddSingleton <IHostedService, SchedulingAgent>();

            registry.CodeGeneration.Sources.Add(new MartenBackedPersistenceMarker());

            var frameProvider = new MartenSagaPersistenceFrameProvider();

            registry.CodeGeneration.SagaPersistence = frameProvider;
            registry.CodeGeneration.Transactions    = frameProvider;
        }
Пример #3
0
        public void Configure(JasperOptions options)
        {
            options.Services.AddTransient <IEnvelopePersistence, PostgresqlEnvelopePersistence>();
            options.Services.AddSingleton(Options);

            options.Advanced.CodeGeneration.Sources.Add(new MartenBackedPersistenceMarker());

            var frameProvider = new MartenSagaPersistenceFrameProvider();

            options.Advanced.CodeGeneration.SetSagaPersistence(frameProvider);
            options.Advanced.CodeGeneration.SetTransactions(frameProvider);

            options.Services.AddSingleton <IDocumentStore>(x =>
            {
                var documentStore = new DocumentStore(Options);
                return(documentStore);
            });

            options.Handlers.GlobalPolicy <FineGrainedSessionCreationPolicy>();


            options.Services.AddScoped(c => c.GetService <IDocumentStore>().OpenSession());
            options.Services.AddScoped(c => c.GetService <IDocumentStore>().QuerySession());

            options.Advanced.CodeGeneration.Sources.Add(new SessionVariableSource());

            options.Services.AddSingleton(s =>
            {
                return(new PostgresqlSettings
                {
                    // Super hacky, look away!!!
                    ConnectionString = Options.Tenancy?.Default.CreateConnection().ConnectionString,
                    SchemaName = Options.DatabaseSchemaName
                });
            });
        }