public static Computed <LoadingResult <TValue, TError> > Computed <TValue, TCommand, TError>( this IReactiveElement self, TCommand?initialCommand, IObservable <TCommand?> reloadCommand, Func <TCommand?, Task <TValue> > loadProperty, Func <Exception, TError> onError) => self.Reactive(ComputedFactory, initialCommand, reloadCommand, loadProperty, onError);
public static Computed <T> Computed <T, TEvent>( this IReactiveElement self, T initialValue, IObservable <TEvent> events, Func <T, TEvent, T> update, IEqualityComparer <T>?comparer = null) => self.Reactive(ComputedFactory, initialValue, events, update, comparer);
public static Computed <TValue> Computed <TValue, TState>( this IReactiveElement self, TState initialState, IObservable <Func <TState, TState> > updates, Func <TState, TValue> select, IEqualityComparer <TValue>?comparer = null) => self.Reactive(ComputedFactory, initialState, updates, select, comparer);
public static TReactive Reactive <TValue, TError, TReactive>( this IReactiveElement self, Func <IObservable <LoadingResult <TValue, TError> >, TReactive> factory, IObservable <Unit> reloadCommand, Func <Task <TValue> > loadProperty, Func <Exception, TError> onError) where TReactive : class, IUpdatableElement, IDisposable => self.Reactive(factory, Unit.Default, reloadCommand, (_) => loadProperty(), onError);
public static TReactive Reactive <TValue, TState, TReactive>( this IReactiveElement self, Func <IObservable <TValue>, TReactive> factory, IObservable <TState> source, Func <TState, TValue> select, IEqualityComparer <TValue>?comparer = null) where TReactive : class, IUpdatableElement, IDisposable => self.Reactive(factory, source.Select(select), comparer);
public static TReactive Reactive <TValue, TReactive>( this IReactiveElement self, Func <IObservable <TValue>, TReactive> factory, TValue initialValue, IObservable <Func <TValue, TValue> > updates, IEqualityComparer <TValue>?comparer = null) where TReactive : class, IUpdatableElement, IDisposable => self.Reactive( factory, updates .Scan(initialValue, (acc, update) => update(acc)) .StartWith(initialValue), comparer);
public static TReactive Reactive <TValue, TCommand, TError, TReactive>( this IReactiveElement self, Func <IObservable <LoadingResult <TValue, TError> >, TReactive> factory, TCommand?initialCommand, IObservable <TCommand?> reloadCommand, Func <TCommand?, Task <TValue> > loadProperty, Func <Exception, TError> onError) where TReactive : class, IUpdatableElement, IDisposable => self.Reactive( factory, initialCommand, reloadCommand, c => Observable.FromAsync(() => loadProperty(c)), onError);
public static TReactive Reactive <TValue, TState, TEvent, TReactive>( this IReactiveElement self, Func <IObservable <TValue>, TReactive> factory, TState initialState, IObservable <TEvent> events, Func <TState, TEvent, TState> update, Func <TState, TValue> select, IEqualityComparer <TValue>?comparer = null) where TReactive : class, IUpdatableElement, IDisposable => self.Reactive( factory, events .Scan(initialState, update) .StartWith(initialState) .Select(select), comparer);
public static TReactive Reactive <TValue, TCommand, TError, TReactive>( this IReactiveElement self, Func <IObservable <LoadingResult <TValue, TError> >, TReactive> factory, TCommand?initialCommand, IObservable <TCommand?> reloadCommand, Func <TCommand?, IObservable <TValue> > loadProperty, Func <Exception, TError> onError) where TReactive : class, IUpdatableElement, IDisposable { var updates = CreateUpdates(initialCommand, reloadCommand, loadProperty, onError) .Replay(1); self.DeferDispose(updates.Connect()); return(self.Reactive( factory, LoadingResult.Create <TValue, TError>().StartLoading(), updates)); }
public static Computed <TValue> Computed <TValue, TState>( this IReactiveElement self, IObservable <TState> source, Func <TState, TValue> select, IEqualityComparer <TValue>?comparer = null) => self.Reactive(ComputedFactory, source, select, comparer);