Esempio n. 1
0
        public static IChronicleBuilder UseMongoPersistence(this IChronicleBuilder builder, ChronicleMongoSettings settings)
        {
            return(builder.UseMongoPersistence(GetDatabase));

            IMongoDatabase GetDatabase(IServiceProvider serviceProvider)
            => new MongoClient(settings.ConnectionString).GetDatabase(settings.Database);
        }
Esempio n. 2
0
        private static IChronicleBuilder UseMongoPersistence(this IChronicleBuilder builder, Func <IServiceProvider, IMongoDatabase> getDatabase)
        {
            builder.Services.AddTransient(getDatabase);
            builder.UseSagaLog <MongoSagaLog>();
            builder.UseSagaStateRepository <MongoSagaStateRepository>();

            return(builder);
        }
Esempio n. 3
0
        public static IChronicleBuilder UseEFCorePersistence <TContext>(this IChronicleBuilder builder)
            where TContext : DbContext
        {
            builder.UseSagaLog <EFCoreSagaLog <TContext> >();
            builder.UseSagaStateRepository <EFCoreSagaState <TContext> >();

            return(builder);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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));
        }
Esempio n. 6
0
        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);
                }
            }
        }
Esempio n. 7
0
 public ChronicleBuilderTests()
 {
     _services = new ServiceCollection();
     _builder  = new ChronicleBuilder(_services);
 }
Esempio n. 8
0
 public static IChronicleBuilder UseRedisPersistence(this IChronicleBuilder builder, ChronicleRedisSettings settings)
 {
     return(builder.ConfigureRedisPersistence(settings));
 }
Esempio n. 9
0
 static void TestChronicleBuilder(IChronicleBuilder cb)
 {
     cb.UseEFCorePersistence <SagaDbContext>();
 }
Esempio n. 10
0
 static void TestChronicleBuilder(IChronicleBuilder cb)
 {
     cb.UseSagaLog <EFCoreSagaLog>();
     cb.UseSagaStateRepository <EFCoreSagaState>();
 }
Esempio n. 11
0
 public ChronicleBuilderTests()
 {
     _services = Substitute.For <ServiceCollection>();
     _builder  = new ChronicleBuilder(_services);
 }