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; }
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 }); }); }