Ejemplo n.º 1
0
        public JsonEnumerableConverter(NewtonsoftJsonSerializationConventions conventions)
        {
            if (conventions is null)
            {
                throw new ArgumentNullException(nameof(conventions));
            }

            _conventions = conventions;
        }
Ejemplo n.º 2
0
        protected override void PreInitialize(IDocumentStore documentStore)
        {
            var serializer = new NewtonsoftJsonSerializationConventions
            {
                JsonContractResolver = new AuditContractResolver()
            };

            serializer.CustomizeJsonSerializer += (JsonSerializer serializer) =>
            {
                serializer.DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate;
                serializer.NullValueHandling    = NullValueHandling.Ignore;
            };
            documentStore.Conventions.Serialization = serializer;
        }
        /// <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));
        }