private static void ConfigureForNodaTime(CustomizeJsonSerializerFactory jsonSerializerFactory) { jsonSerializerFactory.Add(serializer => { serializer.Converters.Add(new NodaTimeDurationTicksJsonConverter()); }); }
public static IDocumentStore CreateStore(string connectionString, params Assembly[] assemblyForIndexingTasks) { var customizeJsonSerializerFactory = new CustomizeJsonSerializerFactory(); var documentStore = new DocumentStore(); documentStore.ParseConnectionString(connectionString); ConfigureUniqueConstraints(documentStore); ConfigureIdTypeConverters(documentStore); ConfigureUnionTypeConverter(documentStore); ConfigureListeners(documentStore); ConfigureForCustomContractResolver(documentStore); documentStore.Initialize(); CreateIndexes(documentStore, assemblyForIndexingTasks); ConfigureMaxRequest(documentStore); ConfigureForNodaTime(customizeJsonSerializerFactory); ConfigureTypeResolver(documentStore, customizeJsonSerializerFactory); documentStore.Conventions.CustomizeJsonSerializer = serializer => customizeJsonSerializerFactory.Execute(serializer); return(documentStore); }
private static void ConfigureTypeResolver(IDocumentStore documentStore, CustomizeJsonSerializerFactory jsonSerializerFactory) { var modelTypeResolver = new ModelTypeResolver(); var modelBinderSetter = new ModelSerializationBinderSetter(modelTypeResolver); modelTypeResolver.Register <SmoothConfiguration>( "xggameplan.SmoothProcessing.SmoothConfiguration, xggameplan.core"); modelTypeResolver.Register <SmoothPassDefault>( "xggameplan.SmoothProcessing.SmoothPassDefault, xggameplan.core"); modelTypeResolver.Register <SmoothPassUnplaced>( "xggameplan.SmoothProcessing.SmoothPassUnplaced, xggameplan.core"); modelTypeResolver.Register <SmoothPassBooked>( "xggameplan.SmoothProcessing.SmoothPassBooked, xggameplan.core"); jsonSerializerFactory.Add(serializer => modelBinderSetter.Set(serializer)); documentStore.Conventions.FindClrType = (documentName, obj, metadata) => { var clrTypeName = metadata.Value <string>(Raven.Abstractions.Data.Constants.RavenClrType); return(modelTypeResolver.Resolve(clrTypeName)?.FullName ?? clrTypeName); }; }