private void RouteVaultEvents(IVault vault, List <ElementChangingEventArgs> changing, List <ElementChangedEventArgs> changed) { vault.Changing(e => { changing.Add(e); if (e.OldValue is Stream) { var s = ((Stream)e.OldValue).AsString(); var setter = typeof(ElementEventArgs).GetProperty("OldValue").GetSetMethod(true); setter.Invoke(e, s.MkArray()); } if (e.NewValue is Stream) { var s = ((Stream)e.NewValue).AsString(); var setter = typeof(ElementEventArgs).GetProperty("NewValue").GetSetMethod(true); setter.Invoke(e, s.MkArray()); } }); vault.Changed(e => { changed.Add(e); if (e.OldValue is Stream) { var s = ((Stream)e.OldValue).AsString(); var setter = typeof(ElementEventArgs).GetProperty("OldValue").GetSetMethod(true); setter.Invoke(e, s.MkArray()); } if (e.NewValue is Stream) { var s = ((Stream)e.NewValue).AsString(); var setter = typeof(ElementEventArgs).GetProperty("NewValue").GetSetMethod(true); setter.Invoke(e, s.MkArray()); } }); }
public VaultCompiler(IVault vault) { Vault = vault.AssertNotNull(); Vault.Changed(SignificantChangeFilter, SignificantChangeProcessor); InitializeCompiler(); }
public static IVault ValueMetadataChanged(this IVault vault, Action <ValueChangedEventArgs> listener) { return(vault.Changed( e => e.Subject is IValue && e.Reason == EventReason.Metadata, e => listener(new ValueChangedEventArgs(e.CorrelationId, e.Reason, (IValue)e.Subject, e.OldRevision, e.OldValue, e.NewValue)))); }
public static IVault Changed(this IVault vault, Action <ElementChangedEventArgs> listener) { return(vault.Changed(e => true, listener)); }
public static IVault ValueChanged(this IVault vault, Func <ValueChangedEventArgs, bool> filter, Action <ValueChangedEventArgs> listener) { return(vault.Changed( e => e.Subject is IValue && filter(new ValueChangedEventArgs(e.CorrelationId, e.Reason, (IValue)e.Subject, e.OldRevision, e.OldValue, e.NewValue)), e => listener(new ValueChangedEventArgs(e.CorrelationId, e.Reason, (IValue)e.Subject, e.OldRevision, e.OldValue, e.NewValue)))); }
public static IVault BranchElementRemoved(this IVault vault, Action <BranchChangedEventArgs> listener) { return(vault.Changed( e => e.Subject is IBranch && e.Reason == EventReason.ElementRemove, e => listener(new BranchChangedEventArgs(e.CorrelationId, e.Reason, (IBranch)e.Subject, e.OldRevision, e.OldValue, e.NewValue)))); }
private void RouteVaultEvents(IVault vault, List<ElementChangingEventArgs> changing, List<ElementChangedEventArgs> changed) { vault.Changing(e => { changing.Add(e); if (e.OldValue is Stream) { var s = ((Stream)e.OldValue).AsString(); var setter = typeof(ElementEventArgs).GetProperty("OldValue").GetSetMethod(true); setter.Invoke(e, s.MkArray()); } if (e.NewValue is Stream) { var s = ((Stream)e.NewValue).AsString(); var setter = typeof(ElementEventArgs).GetProperty("NewValue").GetSetMethod(true); setter.Invoke(e, s.MkArray()); } }); vault.Changed(e => { changed.Add(e); if (e.OldValue is Stream) { var s = ((Stream)e.OldValue).AsString(); var setter = typeof(ElementEventArgs).GetProperty("OldValue").GetSetMethod(true); setter.Invoke(e, s.MkArray()); } if (e.NewValue is Stream) { var s = ((Stream)e.NewValue).AsString(); var setter = typeof(ElementEventArgs).GetProperty("NewValue").GetSetMethod(true); setter.Invoke(e, s.MkArray()); } }); }