public static IChronicleBuilder UseMongoPersistence(this IChronicleBuilder builder, ChronicleMongoSettings settings) { return(builder.UseMongoPersistence(GetDatabase)); IMongoDatabase GetDatabase(IServiceProvider serviceProvider) => new MongoClient(settings.ConnectionString).GetDatabase(settings.Database); }
private static IChronicleBuilder UseMongoPersistence(this IChronicleBuilder builder, Func <IServiceProvider, IMongoDatabase> getDatabase) { builder.Services.AddTransient(getDatabase); builder.UseSagaLog <MongoSagaLog>(); builder.UseSagaStateRepository <MongoSagaStateRepository>(); return(builder); }
public static IChronicleBuilder UseEFCorePersistence <TContext>(this IChronicleBuilder builder) where TContext : DbContext { builder.UseSagaLog <EFCoreSagaLog <TContext> >(); builder.UseSagaStateRepository <EFCoreSagaState <TContext> >(); return(builder); }
private static IChronicleBuilder ConfigureRedisPersistence(this IChronicleBuilder builder, ChronicleRedisSettings settings) { builder.Services.AddStackExchangeRedisCache(options => { options.Configuration = settings.Configuration; options.InstanceName = settings.InstanceName; }); builder.UseSagaLog <RedisSagaLog>(); builder.UseSagaStateRepository <RedisSagaStateRepository>(); return(builder); }
public static IChronicleBuilder UseRedisPersistence(this IChronicleBuilder builder, string appSettingsSection, IConfiguration configuration) { ChronicleRedisSettings settings; try { settings = JsonConvert.DeserializeObject <ChronicleRedisSettings>(configuration.GetSection(appSettingsSection)?.Value); } catch { throw new ChronicleException(DeserializationError); } return(builder.ConfigureRedisPersistence(settings)); }
public static IChronicleBuilder UseMongoPersistence(this IChronicleBuilder builder, string appSettingsSection) { return(builder.UseMongoPersistence(GetDatabase)); IMongoDatabase GetDatabase(IServiceProvider serviceProvider) { var configuration = serviceProvider.GetService <IConfiguration>(); try { var settings = JsonConvert.DeserializeObject <ChronicleMongoSettings>(configuration.GetSection(appSettingsSection)?.Value); var database = new MongoClient(settings.ConnectionString).GetDatabase(settings.Database); return(database); } catch { throw new ChronicleException(DeserializationError); } } }
public ChronicleBuilderTests() { _services = new ServiceCollection(); _builder = new ChronicleBuilder(_services); }
public static IChronicleBuilder UseRedisPersistence(this IChronicleBuilder builder, ChronicleRedisSettings settings) { return(builder.ConfigureRedisPersistence(settings)); }
static void TestChronicleBuilder(IChronicleBuilder cb) { cb.UseEFCorePersistence <SagaDbContext>(); }
static void TestChronicleBuilder(IChronicleBuilder cb) { cb.UseSagaLog <EFCoreSagaLog>(); cb.UseSagaStateRepository <EFCoreSagaState>(); }
public ChronicleBuilderTests() { _services = Substitute.For <ServiceCollection>(); _builder = new ChronicleBuilder(_services); }