public static IChronicleBuilder UseMongoPersistence(this IChronicleBuilder builder, ChronicleMongoSettings settings) { return(builder.UseMongoPersistence(GetDatabase)); IMongoDatabase GetDatabase(IServiceProvider serviceProvider) => new MongoClient(settings.ConnectionString).GetDatabase(settings.Database); }
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); } } }