internal static void RaiseDbEntityUpdated(this IReactiveDbObject entity) { var s = state.GetValue(entity, key => (IExtensionState) new ExtensionState(entity)); s.raiseEntityUpdated(); }
public static IObservable <IReactiveDbObjectEventArgs> getDeletedObservable(this IReactiveDbObject This) { var val = state.GetValue(This, key => (IExtensionState) new ExtensionState(This)); return(val.Deleted.Cast <IReactiveDbObjectEventArgs>()); }
internal static bool RaiseDbValidationEntityError(this IReactiveDbObject entity, ValidationException ex) { var s = state.GetValue(entity, key => (IExtensionState) new ExtensionState(entity)); return(s.raiseValidationEntityError(ex)); }
/// <summary> /// Initializes a new instance of the <see cref="ExtensionState{TSender}"/> class. /// </summary> public ExtensionState(IReactiveDbObject sender) { this.sender = sender; this.addingSubject = new Subject <IReactiveDbObjectEventArgs>(); this.addedSubject = new Subject <IReactiveDbObjectEventArgs>(); this.updatingSubject = new Subject <IReactiveDbObjectEventArgs>(); this.updatedSubject = new Subject <IReactiveDbObjectEventArgs>(); this.deletingSubject = new Subject <IReactiveDbObjectEventArgs>(); this.deletedSubject = new Subject <IReactiveDbObjectEventArgs>(); this.errorSubject = new Subject <IReactiveDbObjectEventArgs>(); this.validationErrorSubject = new Subject <ValidationEntityEventArg>(); this.startDelayNotifications = new Subject <Unit>(); this.thrownExceptions = new ScheduledSubject <Exception>(Scheduler.Immediate, ExceptionHandler.Default); /* this.addedObservable = createObservable(ref addedSubject); * this.addingObservable = createObservable(ref addingSubject); * this.updatedObservable = createObservable(ref updatedSubject); * this.updatingObservable = createObservable(ref updatingSubject); * this.deletedObservable = createObservable(ref deletedSubject); * this.deletingObservable = createObservable(ref deletingSubject);*/ this.addedObservable = addedSubject .Buffer( Observable.Merge( addedSubject.Where(_ => !areChangeNotificationsDelayed()).Select(_ => Unit.Default), startDelayNotifications) ) .SelectMany(batch => dedup(batch)) .Publish() .RefCount(); this.addingObservable = addingSubject .Buffer( Observable.Merge( addingSubject.Where(_ => !areChangeNotificationsDelayed()).Select(_ => Unit.Default), startDelayNotifications) ) .SelectMany(batch => dedup(batch)) .Publish() .RefCount(); this.updatedObservable = updatedSubject .Buffer( Observable.Merge( updatedSubject.Where(_ => !areChangeNotificationsDelayed()).Select(_ => Unit.Default), startDelayNotifications) ) .SelectMany(batch => dedup(batch)) .Publish() .RefCount(); this.updatingObservable = updatingSubject .Buffer( Observable.Merge( updatingSubject.Where(_ => !areChangeNotificationsDelayed()).Select(_ => Unit.Default), startDelayNotifications) ) .SelectMany(batch => dedup(batch)) .Publish() .RefCount(); this.deletedObservable = deletedSubject .Buffer( Observable.Merge( deletedSubject.Where(_ => !areChangeNotificationsDelayed()).Select(_ => Unit.Default), startDelayNotifications) ) .SelectMany(batch => dedup(batch)) .Publish() .RefCount(); this.deletingObservable = deletingSubject .Buffer( Observable.Merge( deletingSubject.Where(_ => !areChangeNotificationsDelayed()).Select(_ => Unit.Default), startDelayNotifications) ) .SelectMany(batch => dedup(batch)) .Publish() .RefCount(); this.errorObservable = errorSubject .Buffer( Observable.Merge( errorSubject.Where(_ => !areChangeNotificationsDelayed()).Select(_ => Unit.Default), startDelayNotifications) ) .SelectMany(batch => dedup(batch)) .Publish() .RefCount(); this.errorCountable = new Countable(); this.errorObservable = this.errorCountable.GetCountable(this.errorObservable); this.validationErrorObservable = validationErrorSubject .Publish() .RefCount(); this.validationErrorCountable = new Countable(); this.validationErrorObservable = this.validationErrorCountable.GetCountable(this.validationErrorObservable); }
public static IObservable <ValidationEntityEventArg> getValidationErrorObservable(this IReactiveDbObject This) { var val = state.GetValue(This, key => (IExtensionState) new ExtensionState(This)); return(val.ValidationError.Cast <ValidationEntityEventArg>()); }
public ValidationEntityError(IReactiveDbObject entity, ValidationException ex) { this.Entity = entity; this.Exception = ex; }
public ValidationEntityException(IReactiveDbObject sender, ValidationEntityEventArg args) { this.Errors = args; this.Sender = sender; }
public ReactiveDbObjectEventArgs(IReactiveDbObject sender, Exception ex) { this.Sender = sender; this.Exception = ex; }
/// <summary> /// Initializes a new instance of the <see cref="ReactivePropertyChangedEventArgs{TSender}"/> class. /// </summary> /// <param name="sender">The sender.</param> public ReactiveDbObjectEventArgs(IReactiveDbObject sender) : this(sender, null) { }