public static ISerializationRegistry DefaultForSnapshot <T>(this ISerializationRegistry registry) where T : class { return(registry .RegisterSnapshotSerializer <T>((e, m) => JObject.FromObject(e, SerializationRegistry.DefaultSerializer)) .RegisterSnapshotDeserializer((json, _) => json.ToObject <T>(SerializationRegistry.DefaultSerializer))); }
public WithEncryptionRegistry(ISerializationRegistry registry, IKeyStore store) { _registry = registry; _store = store; _postprocessorFactory = s => d => store.Encrypt(s, d); _preprocessorFactory = store.DecryptFactory; }
public static ISerializationRegistry RegisterSnapshotDeserializer <T>(this ISerializationRegistry registry, Func <JObject, IReadOnlyMetadata, T> deserializer) { var r = (IRegisterSnapshotDeserializers)registry; r.Register(deserializer); return(registry); }
public static ISerializationRegistry RegisterSnapshotSerializer <T>(this ISerializationRegistry registry, Func <T, IMetadata, JObject> serializer) { var r = (IRegisterSnapshotSerializers)registry; r.Register(serializer); return(registry); }
public static ISerializationRegistry RegisterEventDeserializer( this ISerializationRegistry registry, Type scope, string type, int version, Func <JObject, IReadOnlyMetadata, Event> deserializer, CreatePreprocessor preprocessor = null) { var r = (IRegisterEventDeserializers)registry; r.Register(scope, type, version, (json, metadata) => new[] { deserializer(json, metadata) }, preprocessor); return(registry); }
public static ISerializationRegistry RegisterEventSerializer <T>( this ISerializationRegistry registry, string typeName, int version, Func <T, IMetadata, JObject> serializer, CreatePostprocessor postprocessor = null ) where T : Event { var r = (IRegisterEventSerializers)registry; r.Register(typeName, version, serializer, postprocessor); return(registry); }
public static ISerializationRegistry RegisterSerializers(ISerializationRegistry registry, IKeyStore store) { registry .WithEncryption(store) .DefaultForEvent <UserCreated>() .DefaultForEvent <EmailAddressVerificationRequested>() .DefaultForEvent <PasswordResetTokenCreated>() .DefaultForEvent <EmailAddressVerified>() .DefaultForEvent <PasswordResetRequested>() .DefaultForEvent <UserNameChanged>() .DefaultForEvent <PasswordSet>(); registry .DefaultForEvent <LoginFailed>() .DefaultForEvent <LoginSucceeded>() .DefaultForEvent <AccountLockedOut>() .DefaultForEvent <AccountUnlocked>(); return(registry); }
public static ISerializationRegistry DefaultForEvent <T>(this ISerializationRegistry registry, CreatePostprocessor postSerialization = null, CreatePreprocessor preDeserialization = null) where T : Event { bool prePostIsValidEnough = (postSerialization != null && preDeserialization != null) || (postSerialization == null && preDeserialization == null); if (!prePostIsValidEnough) { throw new ArgumentException("Both pre and post serialization must be specified or neither"); } return(registry .RegisterEventSerializer <T>(CamelCase(typeof(T).Name), 1, (e, m) => JObject.FromObject(e, SerializationRegistry.DefaultSerializer), postSerialization) .RegisterEventDeserializer(typeof(object), CamelCase(typeof(T).Name), 1, (json, m) => { var e = json.ToObject <T>(SerializationRegistry.DefaultSerializer); var em = (IEvent)e; em.Metadata = (IMetadata)m; return e; }, preDeserialization)); }
public static ISerializationRegistry WithEncryption(this ISerializationRegistry registry, IKeyStore store) { return(new WithEncryptionRegistry(registry, store)); }