/// <summary> /// Store the events in a RavenDB database. /// </summary> /// <param name="configurator">The Audit.NET Configurator</param> /// <param name="connectionString">The RavenDB connection string.</param> /// <param name="database">The RavenDB database name.</param> /// <param name="collection">The RavenDB collection name.</param> /// <param name="jsonSerializerSettings">The custom JsonSerializerSettings.</param> public static ICreationPolicyConfigurator UseRavenDB(this IConfigurator configurator, string[] urls, X509Certificate2 certificate, string database = "Audit", JsonSerializerSettings?jsonSerializerSettings = null, bool?storeDiffOnly = true) { var store = new DocumentStore { Urls = urls, Certificate = certificate, Database = database }; var serializer = new NewtonsoftJsonSerializationConventions { JsonContractResolver = new AuditContractResolver() }; serializer.CustomizeJsonSerializer += (JsonSerializer serializer) => { serializer.DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate; serializer.NullValueHandling = NullValueHandling.Ignore; }; store.Conventions.Serialization = serializer; store.Initialize(); var ravendbDataProvider = new RavenDbDataProvider(store, database, jsonSerializerSettings, storeDiffOnly); return(configurator.UseCustomProvider(ravendbDataProvider)); }
public async Task TestStoreSimpleEvent() { var ravendbDataProvider = new RavenDbDataProvider(_store, _store.Database, null, true); Configuration.Setup() .UseCustomProvider(ravendbDataProvider); using (var scope = await AuditScope.CreateAsync(new AuditScopeOptions() { EventType = "test" })) { } using (var session = _store.OpenAsyncSession()) { var events = await session.Query <AuditEvent>().ToListAsync(); Assert.Single(events); var ev = events[0]; Assert.Equal("test", ev.EventType); } }