The recording of the first ever ReactiveUI virtual conference is available on our YouTube Channel.

ObservableCacheEx Class

Summary

Extensions for dynamic data.
Namespace
DynamicData
Base Types
  • object
graph BT Type-->Base0["object"] Type["ObservableCacheEx"] class Type type-node

Syntax

public static class ObservableCacheEx

Methods

Name Value Summary
Adapt<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, IChangeSetAdaptor<TObject, TKey>) IObservable<IChangeSet<TObject, TKey>>
Inject side effects into the stream using the specified adaptor.
static
Adapt<TObject, TKey>(IObservable<ISortedChangeSet<TObject, TKey>>, ISortedChangeSetAdaptor<TObject, TKey>) IObservable<IChangeSet<TObject, TKey>>
Inject side effects into the stream using the specified sorted adaptor.
static
AddOrUpdate<TObject, TKey>(IIntermediateCache<TObject, TKey>, TObject, TKey) void
Removes the specified key from the cache. If the item is not contained in the cache then the operation does nothing.
static
AddOrUpdate<TObject, TKey>(ISourceCache<TObject, TKey>, IEnumerable<TObject>) void
Adds or updates the cache with the specified items.
static
AddOrUpdate<TObject, TKey>(ISourceCache<TObject, TKey>, TObject) void
Adds or updates the cache with the specified item.
static
AddOrUpdate<TObject, TKey>(ISourceCache<TObject, TKey>, TObject, IEqualityComparer<TObject>) void
Adds or updates the cache with the specified item.
static
And<TObject, TKey>(ICollection<IObservable<IChangeSet<TObject, TKey>>>) IObservable<IChangeSet<TObject, TKey>>
Applied a logical And operator between the collections i.e items which are in all of the sources are included.
static
And<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, IObservable<IChangeSet<TObject, TKey>>[]) IObservable<IChangeSet<TObject, TKey>>
Applied a logical And operator between the collections i.e items which are in all of the sources are included.
static
And<TObject, TKey>(IObservableList<IObservable<IChangeSet<TObject, TKey>>>) IObservable<IChangeSet<TObject, TKey>>
Dynamically apply a logical And operator between the items in the outer observable list. Items which are in all of the sources are included in the result.
static
And<TObject, TKey>(IObservableList<IObservableCache<TObject, TKey>>) IObservable<IChangeSet<TObject, TKey>>
Dynamically apply a logical And operator between the items in the outer observable list. Items which are in all of the sources are included in the result.
static
And<TObject, TKey>(IObservableList<ISourceCache<TObject, TKey>>) IObservable<IChangeSet<TObject, TKey>>
Dynamically apply a logical And operator between the items in the outer observable list. Items which are in all of the sources are included in the result.
static
AsObservableCache<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, bool) IObservableCache<TObject, TKey>
Converts the source to a readonly observable cache.
static
AsObservableCache<TObject, TKey>(IObservableCache<TObject, TKey>) IObservableCache<TObject, TKey>
Converts the source to an read only observable cache.
static
AutoRefresh<TObject, TKey, TProperty>(IObservable<IChangeSet<TObject, TKey>>, Expression<Func<TObject, TProperty>>, TimeSpan?, TimeSpan?, IScheduler?) IObservable<IChangeSet<TObject, TKey>>
Automatically refresh downstream operators when properties change.
static
AutoRefresh<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, TimeSpan?, TimeSpan?, IScheduler?) IObservable<IChangeSet<TObject, TKey>>
Automatically refresh downstream operators when any properties change.
static
AutoRefreshOnObservable<TObject, TKey, TAny>(IObservable<IChangeSet<TObject, TKey>>, Func<TObject, IObservable<TAny>>, TimeSpan?, IScheduler?) IObservable<IChangeSet<TObject, TKey>>
Automatically refresh downstream operator. The refresh is triggered when the observable receives a notification.
static
AutoRefreshOnObservable<TObject, TKey, TAny>(IObservable<IChangeSet<TObject, TKey>>, Func<TObject, TKey, IObservable<TAny>>, TimeSpan?, IScheduler?) IObservable<IChangeSet<TObject, TKey>>
Automatically refresh downstream operator. The refresh is triggered when the observable receives a notification.
static
Batch<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, TimeSpan, IScheduler?) IObservable<IChangeSet<TObject, TKey>>
Batches the updates for the specified time period.
static
BatchIf<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, IObservable<bool>, bool, IObservable<Unit>?, IScheduler?) IObservable<IChangeSet<TObject, TKey>>
Batches the underlying updates if a pause signal (i.e when the buffer selector return true) has been received. When a resume signal has been received the batched updates will be fired.
static
BatchIf<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, IObservable<bool>, bool, IScheduler?) IObservable<IChangeSet<TObject, TKey>>
Batches the underlying updates if a pause signal (i.e when the buffer selector return true) has been received. When a resume signal has been received the batched updates will be fired.
static
BatchIf<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, IObservable<bool>, bool, TimeSpan?, IScheduler?) IObservable<IChangeSet<TObject, TKey>>
Batches the underlying updates if a pause signal (i.e when the buffer selector return true) has been received. When a resume signal has been received the batched updates will be fired.
static
BatchIf<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, IObservable<bool>, IScheduler?) IObservable<IChangeSet<TObject, TKey>>
Batches the underlying updates if a pause signal (i.e when the buffer selector return true) has been received. When a resume signal has been received the batched updates will be fired.
static
BatchIf<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, IObservable<bool>, TimeSpan?, IScheduler?) IObservable<IChangeSet<TObject, TKey>>
Batches the underlying updates if a pause signal (i.e when the buffer selector return true) has been received. When a resume signal has been received the batched updates will be fired.
static
Bind<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, IObservableCollection<TObject>) IObservable<IChangeSet<TObject, TKey>>
Binds the results to the specified observable collection using the default update algorithm.
static
Bind<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, IObservableCollection<TObject>, IObservableCollectionAdaptor<TObject, TKey>) IObservable<IChangeSet<TObject, TKey>>
Binds the results to the specified binding collection using the specified update algorithm.
static
Bind<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, ReadOnlyObservableCollection<TObject>, int, IObservableCollectionAdaptor<TObject, TKey>?) IObservable<IChangeSet<TObject, TKey>>
Binds the results to the specified readonly observable collection using the default update algorithm.
static
Bind<TObject, TKey>(IObservable<ISortedChangeSet<TObject, TKey>>, IObservableCollection<TObject>) IObservable<ISortedChangeSet<TObject, TKey>>
Binds the results to the specified observable collection using the default update algorithm.
static
Bind<TObject, TKey>(IObservable<ISortedChangeSet<TObject, TKey>>, IObservableCollection<TObject>, ISortedObservableCollectionAdaptor<TObject, TKey>) IObservable<ISortedChangeSet<TObject, TKey>>
Binds the results to the specified binding collection using the specified update algorithm.
static
Bind<TObject, TKey>(IObservable<ISortedChangeSet<TObject, TKey>>, ReadOnlyObservableCollection<TObject>, int, ISortedObservableCollectionAdaptor<TObject, TKey>?) IObservable<IChangeSet<TObject, TKey>>
Binds the results to the specified readonly observable collection using the default update algorithm.
static
BufferInitial<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, TimeSpan, IScheduler?) IObservable<IChangeSet<TObject, TKey>>
Buffers changes for an initial period only. After the period has elapsed, not further buffering occurs.
static
Cast<TSource, TKey, TDestination>(IObservable<IChangeSet<TSource, TKey>>, Func<TSource, TDestination>) IObservable<IChangeSet<TDestination, TKey>>
Cast the object to the specified type. Alas, I had to add the converter due to type inference issues.
static
ChangeKey<TObject, TSourceKey, TDestinationKey>(IObservable<IChangeSet<TObject, TSourceKey>>, Func<TObject, TDestinationKey>) IObservable<IChangeSet<TObject, TDestinationKey>>
Changes the primary key.
static
ChangeKey<TObject, TSourceKey, TDestinationKey>(IObservable<IChangeSet<TObject, TSourceKey>>, Func<TSourceKey, TObject, TDestinationKey>) IObservable<IChangeSet<TObject, TDestinationKey>>
Changes the primary key.
static
Clear<TObject, TKey>(IIntermediateCache<TObject, TKey>) void
Clears all items from the cache.
static
Clear<TObject, TKey>(ISourceCache<TObject, TKey>) void
Clears all data.
static
Clear<TObject, TKey>(LockFreeObservableCache<TObject, TKey>) void
Clears all data.
static
Clone<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, ICollection<TObject>) IObservable<IChangeSet<TObject, TKey>>
Clones the changes into the specified collection.
static
Convert<TObject, TKey, TDestination>(IObservable<IChangeSet<TObject, TKey>>, Func<TObject, TDestination>) IObservable<IChangeSet<TDestination, TKey>>
Convert the object using the specified conversion function. This is a lighter equivalent of Transform and is designed to be used with non-disposable objects.
static
DeferUntilLoaded<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>) IObservable<IChangeSet<TObject, TKey>>
Defer the subscription until the stream has been inflated with data.
static
DeferUntilLoaded<TObject, TKey>(IObservableCache<TObject, TKey>) IObservable<IChangeSet<TObject, TKey>>
Defer the subscription until the stream has been inflated with data.
static
DisposeMany<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>) IObservable<IChangeSet<TObject, TKey>>
Disposes each item when no longer required. Individual items are disposed when removed or replaced. All items are disposed when the stream is disposed.
static
DistinctValues<TObject, TKey, TValue>(IObservable<IChangeSet<TObject, TKey>>, Func<TObject, TValue>) IObservable<IDistinctChangeSet<TValue>>
Selects distinct values from the source.
static
EditDiff<TObject, TKey>(ISourceCache<TObject, TKey>, IEnumerable<TObject>, Func<TObject, TObject, bool>) void
Loads the cache with the specified items in an optimised manner i.e. calculates the differences between the old and new items in the list and amends only the differences.
static
EditDiff<TObject, TKey>(ISourceCache<TObject, TKey>, IEnumerable<TObject>, IEqualityComparer<TObject>) void
Loads the cache with the specified items in an optimised manner i.e. calculates the differences between the old and new items in the list and amends only the differences.
static
Evaluate<TObject, TKey>(ISourceCache<TObject, TKey>) void
Signal observers to re-evaluate the all items.
static
Evaluate<TObject, TKey>(ISourceCache<TObject, TKey>, IEnumerable<TObject>) void
Signal observers to re-evaluate the specified items.
static
Evaluate<TObject, TKey>(ISourceCache<TObject, TKey>, TObject) void
Signal observers to re-evaluate the specified item.
static
Except<TObject, TKey>(ICollection<IObservable<IChangeSet<TObject, TKey>>>) IObservable<IChangeSet<TObject, TKey>>
Dynamically apply a logical Except operator between the collections Items from the first collection in the outer list are included unless contained in any of the other lists.
static
Except<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, IObservable<IChangeSet<TObject, TKey>>[]) IObservable<IChangeSet<TObject, TKey>>
Dynamically apply a logical Except operator between the collections Items from the first collection in the outer list are included unless contained in any of the other lists.
static
Except<TObject, TKey>(IObservableList<IObservable<IChangeSet<TObject, TKey>>>) IObservable<IChangeSet<TObject, TKey>>
Dynamically apply a logical Except operator between the collections Items from the first collection in the outer list are included unless contained in any of the other lists.
static
Except<TObject, TKey>(IObservableList<IObservableCache<TObject, TKey>>) IObservable<IChangeSet<TObject, TKey>>
Dynamically apply a logical Except operator between the items in the outer observable list. Items which are in any of the sources are included in the result.
static
Except<TObject, TKey>(IObservableList<ISourceCache<TObject, TKey>>) IObservable<IChangeSet<TObject, TKey>>
Dynamically apply a logical Except operator between the items in the outer observable list. Items which are in any of the sources are included in the result.
static
ExpireAfter<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, Func<TObject, TimeSpan?>) IObservable<IChangeSet<TObject, TKey>>
Automatically removes items from the stream after the time specified by the timeSelector elapses. Return null if the item should never be removed.
static
ExpireAfter<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, Func<TObject, TimeSpan?>, IScheduler) IObservable<IChangeSet<TObject, TKey>>
Automatically removes items from the stream after the time specified by the timeSelector elapses. Return null if the item should never be removed.
static
ExpireAfter<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, Func<TObject, TimeSpan?>, TimeSpan?) IObservable<IChangeSet<TObject, TKey>>
Automatically removes items from the stream on the next poll after the time specified by the time selector elapses.
static
ExpireAfter<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, Func<TObject, TimeSpan?>, TimeSpan?, IScheduler) IObservable<IChangeSet<TObject, TKey>>
Automatically removes items from the stream on the next poll after the time specified by the time selector elapses.
static
ExpireAfter<TObject, TKey>(ISourceCache<TObject, TKey>, Func<TObject, TimeSpan?>, IScheduler?) IObservable<IEnumerable<KeyValuePair<TKey, TObject>>>
Automatically removes items from the cache after the time specified by the time selector elapses.
static
ExpireAfter<TObject, TKey>(ISourceCache<TObject, TKey>, Func<TObject, TimeSpan?>, TimeSpan?) IObservable<IEnumerable<KeyValuePair<TKey, TObject>>>
Automatically removes items from the cache after the time specified by the time selector elapses.
static
ExpireAfter<TObject, TKey>(ISourceCache<TObject, TKey>, Func<TObject, TimeSpan?>, TimeSpan?, IScheduler?) IObservable<IEnumerable<KeyValuePair<TKey, TObject>>>
Automatically removes items from the cache after the time specified by the time selector elapses.
static
Filter<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, Func<TObject, bool>) IObservable<IChangeSet<TObject, TKey>>
Filters the specified source.
static
Filter<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, IObservable<Func<TObject, bool>>) IObservable<IChangeSet<TObject, TKey>>
Creates a filtered stream which can be dynamically filtered.
static
Filter<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, IObservable<Func<TObject, bool>>, IObservable<Unit>) IObservable<IChangeSet<TObject, TKey>>
Creates a filtered stream which can be dynamically filtered.
static
Filter<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, IObservable<Unit>) IObservable<IChangeSet<TObject, TKey>>
Creates a filtered stream which can be dynamically filtered.
static
FilterOnProperty<TObject, TKey, TProperty>(IObservable<IChangeSet<TObject, TKey>>, Expression<Func<TObject, TProperty>>, Func<TObject, bool>, TimeSpan?, IScheduler?) IObservable<IChangeSet<TObject, TKey>>
Filters source on the specified property using the specified predicate. The filter will automatically reapply when a property changes. When there are likely to be a large number of property changes specify a throttle to improve performance.
static
FinallySafe<T>(IObservable<T>, Action) IObservable<T>
Ensure that finally is always called. Thanks to Lee Campbell for this.
static
Flatten<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>) IObservable<Change<TObject, TKey>>
Flattens an update collection to it's individual items.
static
FlattenBufferResult<TObject, TKey>(IObservable<IList<IChangeSet<TObject, TKey>>>) IObservable<IChangeSet<TObject, TKey>>
Convert the result of a buffer operation to a single change set.
static
ForEachChange<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, Action<Change<TObject, TKey>>) IObservable<IChangeSet<TObject, TKey>>
Provides a call back for each change.
static
FullJoin<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>>, IObservable<IChangeSet<TRight, TRightKey>>, Func<TRight, TLeftKey>, Func<Optional<TLeft>, Optional<TRight>, TDestination>) IObservable<IChangeSet<TDestination, TLeftKey>>
Joins the left and right observable data sources, taking any left or right values and matching them, provided that the left or the right has a value. This is the equivalent of SQL full join.
static
FullJoin<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>>, IObservable<IChangeSet<TRight, TRightKey>>, Func<TRight, TLeftKey>, Func<TLeftKey, Optional<TLeft>, Optional<TRight>, TDestination>) IObservable<IChangeSet<TDestination, TLeftKey>>
Joins the left and right observable data sources, taking any left or right values and matching them, provided that the left or the right has a value. This is the equivalent of SQL full join.
static
FullJoinMany<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>>, IObservable<IChangeSet<TRight, TRightKey>>, Func<TRight, TLeftKey>, Func<Optional<TLeft>, IGrouping<TRight, TRightKey, TLeftKey>, TDestination>) IObservable<IChangeSet<TDestination, TLeftKey>>
Groups the right data source and joins the resulting group to the left data source, matching these using the specified key selector. Results are included when the left or the right has a value. This is the equivalent of SQL full join.
static
FullJoinMany<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>>, IObservable<IChangeSet<TRight, TRightKey>>, Func<TRight, TLeftKey>, Func<TLeftKey, Optional<TLeft>, IGrouping<TRight, TRightKey, TLeftKey>, TDestination>) IObservable<IChangeSet<TDestination, TLeftKey>>
Groups the right data source and joins the resulting group to the left data source, matching these using the specified key selector. Results are included when the left or the right has a value. This is the equivalent of SQL full join.
static
Group<TObject, TKey, TGroupKey>(IObservable<IChangeSet<TObject, TKey>>, Func<TObject, TGroupKey>) IObservable<IGroupChangeSet<TObject, TKey, TGroupKey>>
Groups the source on the value returned by group selector factory.
static
Group<TObject, TKey, TGroupKey>(IObservable<IChangeSet<TObject, TKey>>, Func<TObject, TGroupKey>, IObservable<IDistinctChangeSet<TGroupKey>>) IObservable<IGroupChangeSet<TObject, TKey, TGroupKey>>
Groups the source on the value returned by group selector factory. A group is included for each item in the resulting group source.
static
Group<TObject, TKey, TGroupKey>(IObservable<IChangeSet<TObject, TKey>>, Func<TObject, TGroupKey>, IObservable<Unit>) IObservable<IGroupChangeSet<TObject, TKey, TGroupKey>>
Groups the source on the value returned by group selector factory.
static
GroupOnProperty<TObject, TKey, TGroupKey>(IObservable<IChangeSet<TObject, TKey>>, Expression<Func<TObject, TGroupKey>>, TimeSpan?, IScheduler?) IObservable<IGroupChangeSet<TObject, TKey, TGroupKey>>
Groups the source using the property specified by the property selector. Groups are re-applied when the property value changed. When there are likely to be a large number of group property changes specify a throttle to improve performance.
static
GroupOnPropertyWithImmutableState<TObject, TKey, TGroupKey>(IObservable<IChangeSet<TObject, TKey>>, Expression<Func<TObject, TGroupKey>>, TimeSpan?, IScheduler?) IObservable<IImmutableGroupChangeSet<TObject, TKey, TGroupKey>>
Groups the source using the property specified by the property selector. Each update produces immutable grouping. Groups are re-applied when the property value changed. When there are likely to be a large number of group property changes specify a throttle to improve performance.
static
GroupWithImmutableState<TObject, TKey, TGroupKey>(IObservable<IChangeSet<TObject, TKey>>, Func<TObject, TGroupKey>, IObservable<Unit>?) IObservable<IImmutableGroupChangeSet<TObject, TKey, TGroupKey>>
Groups the source on the value returned by group selector factory. Each update produces immutable grouping.
static
IgnoreSameReferenceUpdate<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>) IObservable<IChangeSet<TObject, TKey>>
Ignores updates when the update is the same reference.
static
IgnoreUpdateWhen<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, Func<TObject, TObject, bool>) IObservable<IChangeSet<TObject, TKey>>
Ignores the update when the condition is met. The first parameter in the ignore function is the current value and the second parameter is the previous value.
static
IncludeUpdateWhen<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, Func<TObject, TObject, bool>) IObservable<IChangeSet<TObject, TKey>>
Only includes the update when the condition is met. The first parameter in the ignore function is the current value and the second parameter is the previous value.
static
InnerJoin<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>>, IObservable<IChangeSet<TRight, TRightKey>>, Func<TRight, TLeftKey>, Func<TLeft, TRight, TDestination>) IObservable<IChangeSet<TDestination, TLeftKey>>
Joins the left and right observable data sources, taking values when both left and right values are present This is the equivalent of SQL inner join.
static
InnerJoin<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>>, IObservable<IChangeSet<TRight, TRightKey>>, Func<TRight, TLeftKey>, Func<TLeftKey, TLeft, TRight, TDestination>) IObservable<IChangeSet<TDestination, TLeftKey>>
Groups the right data source and joins the to the left and the right sources, taking values when both left and right values are present This is the equivalent of SQL inner join.
static
InnerJoinMany<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>>, IObservable<IChangeSet<TRight, TRightKey>>, Func<TRight, TLeftKey>, Func<TLeft, IGrouping<TRight, TRightKey, TLeftKey>, TDestination>) IObservable<IChangeSet<TDestination, TLeftKey>>
Groups the right data source and joins the resulting group to the left data source, matching these using the specified key selector. Results are included when the left and right have matching values. This is the equivalent of SQL inner join.
static
InnerJoinMany<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>>, IObservable<IChangeSet<TRight, TRightKey>>, Func<TRight, TLeftKey>, Func<TLeftKey, TLeft, IGrouping<TRight, TRightKey, TLeftKey>, TDestination>) IObservable<IChangeSet<TDestination, TLeftKey>>
Groups the right data source and joins the resulting group to the left data source, matching these using the specified key selector. Results are included when the left and right have matching values. This is the equivalent of SQL inner join.
static
InvokeEvaluate<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>) IObservable<IChangeSet<TObject, TKey>>
Invokes Refresh method for an object which implements IEvaluateAware.
static
LeftJoin<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>>, IObservable<IChangeSet<TRight, TRightKey>>, Func<TRight, TLeftKey>, Func<TLeft, Optional<TRight>, TDestination>) IObservable<IChangeSet<TDestination, TLeftKey>>
Joins the left and right observable data sources, taking all left values and combining any matching right values.
static
LeftJoin<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>>, IObservable<IChangeSet<TRight, TRightKey>>, Func<TRight, TLeftKey>, Func<TLeftKey, TLeft, Optional<TRight>, TDestination>) IObservable<IChangeSet<TDestination, TLeftKey>>
Joins the left and right observable data sources, taking all left values and combining any matching right values.
static
LeftJoinMany<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>>, IObservable<IChangeSet<TRight, TRightKey>>, Func<TRight, TLeftKey>, Func<TLeft, IGrouping<TRight, TRightKey, TLeftKey>, TDestination>) IObservable<IChangeSet<TDestination, TLeftKey>>
Groups the right data source and joins the two sources matching them using the specified key selector, taking all left values and combining any matching right values. This is the equivalent of SQL left join.
static
LeftJoinMany<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>>, IObservable<IChangeSet<TRight, TRightKey>>, Func<TRight, TLeftKey>, Func<TLeftKey, TLeft, IGrouping<TRight, TRightKey, TLeftKey>, TDestination>) IObservable<IChangeSet<TDestination, TLeftKey>>
Groups the right data source and joins the two sources matching them using the specified key selector, taking all left values and combining any matching right values. This is the equivalent of SQL left join.
static
LimitSizeTo<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, int) IObservable<IChangeSet<TObject, TKey>>
Applies a size limiter to the number of records which can be included in the underlying cache. When the size limit is reached the oldest items are removed.
static
LimitSizeTo<TObject, TKey>(ISourceCache<TObject, TKey>, int, IScheduler?) IObservable<IEnumerable<KeyValuePair<TKey, TObject>>>
Limits the number of records in the cache to the size specified. When the size is reached the oldest items are removed from the cache.
static
MergeMany<TObject, TKey, TDestination>(IObservable<IChangeSet<TObject, TKey>>, Func<TObject, IObservable<TDestination>>) IObservable<TDestination>
Dynamically merges the observable which is selected from each item in the stream, and un-merges the item when it is no longer part of the stream.
static
MergeMany<TObject, TKey, TDestination>(IObservable<IChangeSet<TObject, TKey>>, Func<TObject, TKey, IObservable<TDestination>>) IObservable<TDestination>
Dynamically merges the observable which is selected from each item in the stream, and un-merges the item when it is no longer part of the stream.
static
MergeManyItems<TObject, TKey, TDestination>(IObservable<IChangeSet<TObject, TKey>>, Func<TObject, IObservable<TDestination>>) IObservable<ItemWithValue<TObject, TDestination>>
Dynamically merges the observable which is selected from each item in the stream, and un-merges the item when it is no longer part of the stream.
static
MergeManyItems<TObject, TKey, TDestination>(IObservable<IChangeSet<TObject, TKey>>, Func<TObject, TKey, IObservable<TDestination>>) IObservable<ItemWithValue<TObject, TDestination>>
Dynamically merges the observable which is selected from each item in the stream, and un-merges the item when it is no longer part of the stream.
static
MonitorStatus<T>(IObservable<T>) IObservable<ConnectionStatus>
Monitors the status of a stream.
static
NotEmpty<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>) IObservable<IChangeSet<TObject, TKey>>
Suppresses updates which are empty.
static
OnItemAdded<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, Action<TObject>) IObservable<IChangeSet<TObject, TKey>>
Callback for each item as and when it is being added to the stream.
static
OnItemRemoved<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, Action<TObject>) IObservable<IChangeSet<TObject, TKey>>
Callback for each item as and when it is being removed from the stream.
static
OnItemUpdated<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, Action<TObject, TObject>) IObservable<IChangeSet<TObject, TKey>>
Callback when an item has been updated eg. (current, previous)=>{}.
static
Or<TObject, TKey>(ICollection<IObservable<IChangeSet<TObject, TKey>>>) IObservable<IChangeSet<TObject, TKey>>
Apply a logical Or operator between the collections i.e items which are in any of the sources are included.
static
Or<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, IObservable<IChangeSet<TObject, TKey>>[]) IObservable<IChangeSet<TObject, TKey>>
Apply a logical Or operator between the collections i.e items which are in any of the sources are included.
static
Or<TObject, TKey>(IObservableList<IObservable<IChangeSet<TObject, TKey>>>) IObservable<IChangeSet<TObject, TKey>>
Dynamically apply a logical Or operator between the items in the outer observable list. Items which are in any of the sources are included in the result.
static
Or<TObject, TKey>(IObservableList<IObservableCache<TObject, TKey>>) IObservable<IChangeSet<TObject, TKey>>
Dynamically apply a logical Or operator between the items in the outer observable list. Items which are in any of the sources are included in the result.
static
Or<TObject, TKey>(IObservableList<ISourceCache<TObject, TKey>>) IObservable<IChangeSet<TObject, TKey>>
Dynamically apply a logical Or operator between the items in the outer observable list. Items which are in any of the sources are included in the result.
static
Page<TObject, TKey>(IObservable<ISortedChangeSet<TObject, TKey>>, IObservable<IPageRequest>) IObservable<IPagedChangeSet<TObject, TKey>>
Returns the page as specified by the pageRequests observable.
static
PopulateFrom<TObject, TKey>(ISourceCache<TObject, TKey>, IObservable<IEnumerable<TObject>>) IDisposable
Populate a cache from an observable stream.
static
PopulateFrom<TObject, TKey>(ISourceCache<TObject, TKey>, IObservable<TObject>) IDisposable
Populate a cache from an observable stream.
static
PopulateInto<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, IIntermediateCache<TObject, TKey>) IDisposable
Populates a source into the specified cache.
static
PopulateInto<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, ISourceCache<TObject, TKey>) IDisposable
Populates a source into the specified cache.
static
PopulateInto<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, LockFreeObservableCache<TObject, TKey>) IDisposable
Populates a source into the specified cache.
static
QueryWhenChanged<TObject, TKey, TDestination>(IObservable<IChangeSet<TObject, TKey>>, Func<IQuery<TObject, TKey>, TDestination>) IObservable<TDestination>
The latest copy of the cache is exposed for querying after each modification to the underlying data.
static
QueryWhenChanged<TObject, TKey, TValue>(IObservable<IChangeSet<TObject, TKey>>, Func<TObject, IObservable<TValue>>) IObservable<IQuery<TObject, TKey>>
The latest copy of the cache is exposed for querying i) after each modification to the underlying data ii) on subscription.
static
QueryWhenChanged<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>) IObservable<IQuery<TObject, TKey>>
The latest copy of the cache is exposed for querying i) after each modification to the underlying data ii) upon subscription.
static
RefCount<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>) IObservable<IChangeSet<TObject, TKey>>
Cache equivalent to Publish().RefCount(). The source is cached so long as there is at least 1 subscriber.
static
Refresh<TObject, TKey>(ISourceCache<TObject, TKey>) void
Signal observers to re-evaluate the all items.
static
Refresh<TObject, TKey>(ISourceCache<TObject, TKey>, IEnumerable<TObject>) void
Signal observers to re-evaluate the specified items.
static
Refresh<TObject, TKey>(ISourceCache<TObject, TKey>, TObject) void
Signal observers to re-evaluate the specified item.
static
Remove<TObject, TKey>(IIntermediateCache<TObject, TKey>, IEnumerable<TKey>) void
Removes the specified keys from the cache. Any keys not contained in the cache are ignored.
static
Remove<TObject, TKey>(IIntermediateCache<TObject, TKey>, TKey) void
Removes the specified key from the cache. If the item is not contained in the cache then the operation does nothing.
static
Remove<TObject, TKey>(ISourceCache<TObject, TKey>, IEnumerable<TKey>) void
Removes the specified keys from the cache. Any keys not contained in the cache are ignored.
static
Remove<TObject, TKey>(ISourceCache<TObject, TKey>, IEnumerable<TObject>) void
Removes the specified items from the cache. Any items not contained in the cache are ignored.
static
Remove<TObject, TKey>(ISourceCache<TObject, TKey>, TKey) void
Removes the specified key from the cache. If the item is not contained in the cache then the operation does nothing.
static
Remove<TObject, TKey>(ISourceCache<TObject, TKey>, TObject) void
Removes the specified item from the cache. If the item is not contained in the cache then the operation does nothing.
static
RemoveKey<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>) IObservable<IChangeSet<TObject>>
Removes the key which enables all observable list features of dynamic data.
static
RemoveKey<TObject, TKey>(ISourceCache<TObject, TKey>, TKey) void
Removes the specified key from the cache. If the item is not contained in the cache then the operation does nothing.
static
RemoveKeys<TObject, TKey>(ISourceCache<TObject, TKey>, IEnumerable<TKey>) void
Removes the specified keys from the cache. Any keys not contained in the cache are ignored.
static
RightJoin<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>>, IObservable<IChangeSet<TRight, TRightKey>>, Func<TRight, TLeftKey>, Func<Optional<TLeft>, TRight, TDestination>) IObservable<IChangeSet<TDestination, TLeftKey>>
Joins the left and right observable data sources, taking all right values and combining any matching left values.
static
RightJoin<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>>, IObservable<IChangeSet<TRight, TRightKey>>, Func<TRight, TLeftKey>, Func<TLeftKey, Optional<TLeft>, TRight, TDestination>) IObservable<IChangeSet<TDestination, TLeftKey>>
Joins the left and right observable data sources, taking all right values and combining any matching left values.
static
RightJoinMany<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>>, IObservable<IChangeSet<TRight, TRightKey>>, Func<TRight, TLeftKey>, Func<Optional<TLeft>, IGrouping<TRight, TRightKey, TLeftKey>, TDestination>) IObservable<IChangeSet<TDestination, TLeftKey>>
Groups the right data source and joins the two sources matching them using the specified key selector, , taking all right values and combining any matching left values. This is the equivalent of SQL left join.
static
RightJoinMany<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>>, IObservable<IChangeSet<TRight, TRightKey>>, Func<TRight, TLeftKey>, Func<TLeftKey, Optional<TLeft>, IGrouping<TRight, TRightKey, TLeftKey>, TDestination>) IObservable<IChangeSet<TDestination, TLeftKey>>
Groups the right data source and joins the two sources matching them using the specified key selector,, taking all right values and combining any matching left values. This is the equivalent of SQL left join.
static
SkipInitial<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>) IObservable<IChangeSet<TObject, TKey>>
Defer the subscription until loaded and skip initial change set.
static
Sort<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, IComparer<TObject>, IObservable<Unit>, SortOptimisations, int) IObservable<ISortedChangeSet<TObject, TKey>>
Sorts a sequence as, using the comparer observable to determine order.
static
Sort<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, IComparer<TObject>, SortOptimisations, int) IObservable<ISortedChangeSet<TObject, TKey>>
Sorts using the specified comparer. Returns the underlying ChangeSet as as per the system conventions. The resulting change set also exposes a sorted key value collection of of the underlying cached data.
static
Sort<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, IObservable<IComparer<TObject>>, IObservable<Unit>, SortOptimisations, int) IObservable<ISortedChangeSet<TObject, TKey>>
Sorts a sequence as, using the comparer observable to determine order.
static
Sort<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, IObservable<IComparer<TObject>>, SortOptimisations, int) IObservable<ISortedChangeSet<TObject, TKey>>
Sorts a sequence as, using the comparer observable to determine order.
static
StartWithEmpty<T>(IObservable<IReadOnlyCollection<T>>) IObservable<IReadOnlyCollection<T>>
Prepends an empty change set to the source.
static
StartWithEmpty<TObject, TKey, TGroupKey>(IObservable<IGroupChangeSet<TObject, TKey, TGroupKey>>) IObservable<IGroupChangeSet<TObject, TKey, TGroupKey>>
Prepends an empty change set to the source.
static
StartWithEmpty<TObject, TKey, TGroupKey>(IObservable<IImmutableGroupChangeSet<TObject, TKey, TGroupKey>>) IObservable<IImmutableGroupChangeSet<TObject, TKey, TGroupKey>>
Prepends an empty change set to the source.
static
StartWithEmpty<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>) IObservable<IChangeSet<TObject, TKey>>
Prepends an empty change set to the source.
static
StartWithEmpty<TObject, TKey>(IObservable<IPagedChangeSet<TObject, TKey>>) IObservable<IPagedChangeSet<TObject, TKey>>
Prepends an empty change set to the source.
static
StartWithEmpty<TObject, TKey>(IObservable<ISortedChangeSet<TObject, TKey>>) IObservable<ISortedChangeSet<TObject, TKey>>
Prepends an empty change set to the source.
static
StartWithEmpty<TObject, TKey>(IObservable<IVirtualChangeSet<TObject, TKey>>) IObservable<IVirtualChangeSet<TObject, TKey>>
Prepends an empty change set to the source.
static
StartWithItem<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, TObject) IObservable<IChangeSet<TObject, TKey>>
The equivalent of rx StartsWith operator, but wraps the item in a change where reason is ChangeReason.Add.
static
StartWithItem<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, TObject, TKey) IObservable<IChangeSet<TObject, TKey>>
The equivalent of rx StartWith operator, but wraps the item in a change where reason is ChangeReason.Add.
static
SubscribeMany<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, Func<TObject, IDisposable>) IObservable<IChangeSet<TObject, TKey>>
Subscribes to each item when it is added to the stream and un-subscribes when it is removed. All items will be unsubscribed when the stream is disposed.
static
SubscribeMany<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, Func<TObject, TKey, IDisposable>) IObservable<IChangeSet<TObject, TKey>>
Subscribes to each item when it is added to the stream and unsubscribes when it is removed. All items will be unsubscribed when the stream is disposed.
static
SuppressRefresh<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>) IObservable<IChangeSet<TObject, TKey>>
Suppress refresh notifications.
static
Switch<TObject, TKey>(IObservable<IObservable<IChangeSet<TObject, TKey>>>) IObservable<IChangeSet<TObject, TKey>>
Transforms an observable sequence of observable changes sets into an observable sequence producing values only from the most recent observable sequence. Each time a new inner observable sequence is received, unsubscribe from the previous inner observable sequence and clear the existing result set.
static
Switch<TObject, TKey>(IObservable<IObservableCache<TObject, TKey>>) IObservable<IChangeSet<TObject, TKey>>
Transforms an observable sequence of observable caches into a single sequence producing values only from the most recent observable sequence. Each time a new inner observable sequence is received, unsubscribe from the previous inner observable sequence and clear the existing result set.
static
ToCollection<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>) IObservable<IReadOnlyCollection<TObject>>
Converts the change set into a fully formed collection. Each change in the source results in a new collection.
static
ToObservableChangeSet<TObject, TKey>(IObservable<IEnumerable<TObject>>, Func<TObject, TKey>, Func<TObject, TimeSpan?>?, int, IScheduler?) IObservable<IChangeSet<TObject, TKey>>
Converts the observable to an observable change set. Change set observes observable change events.
static
ToObservableChangeSet<TObject, TKey>(IObservable<TObject>, Func<TObject, TKey>, Func<TObject, TimeSpan?>?, int, IScheduler?) IObservable<IChangeSet<TObject, TKey>>
Converts the observable to an observable change set. Change set observes observable change events.
static
Top<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, IComparer<TObject>, int) IObservable<IVirtualChangeSet<TObject, TKey>>
Limits the size of the result set to the specified number, ordering by the comparer.
static
Top<TObject, TKey>(IObservable<ISortedChangeSet<TObject, TKey>>, int) IObservable<IVirtualChangeSet<TObject, TKey>>
Limits the size of the result set to the specified number.
static
ToSortedCollection<TObject, TKey, TSortKey>(IObservable<IChangeSet<TObject, TKey>>, Func<TObject, TSortKey>, SortDirection) IObservable<IReadOnlyCollection<TObject>>
Converts the change set into a fully formed sorted collection. Each change in the source results in a new sorted collection.
static
ToSortedCollection<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, IComparer<TObject>) IObservable<IReadOnlyCollection<TObject>>
Converts the change set into a fully formed sorted collection. Each change in the source results in a new sorted collection.
static
Transform<TDestination, TSource, TKey>(IObservable<IChangeSet<TSource, TKey>>, Func<TSource, Optional<TSource>, TKey, TDestination>, bool) IObservable<IChangeSet<TDestination, TKey>>
Projects each update item to a new form using the specified transform function.
static
Transform<TDestination, TSource, TKey>(IObservable<IChangeSet<TSource, TKey>>, Func<TSource, Optional<TSource>, TKey, TDestination>, IObservable<Func<TSource, TKey, bool>>?) IObservable<IChangeSet<TDestination, TKey>>
Projects each update item to a new form using the specified transform function.
static
Transform<TDestination, TSource, TKey>(IObservable<IChangeSet<TSource, TKey>>, Func<TSource, Optional<TSource>, TKey, TDestination>, IObservable<Unit>) IObservable<IChangeSet<TDestination, TKey>>
Projects each update item to a new form using the specified transform function.
static
Transform<TDestination, TSource, TKey>(IObservable<IChangeSet<TSource, TKey>>, Func<TSource, TDestination>, bool) IObservable<IChangeSet<TDestination, TKey>>
Projects each update item to a new form using the specified transform function.
static
Transform<TDestination, TSource, TKey>(IObservable<IChangeSet<TSource, TKey>>, Func<TSource, TDestination>, IObservable<Func<TSource, bool>>?) IObservable<IChangeSet<TDestination, TKey>>
Projects each update item to a new form using the specified transform function.
static
Transform<TDestination, TSource, TKey>(IObservable<IChangeSet<TSource, TKey>>, Func<TSource, TDestination>, IObservable<Unit>) IObservable<IChangeSet<TDestination, TKey>>
Projects each update item to a new form using the specified transform function.
static
Transform<TDestination, TSource, TKey>(IObservable<IChangeSet<TSource, TKey>>, Func<TSource, TKey, TDestination>, bool) IObservable<IChangeSet<TDestination, TKey>>
Projects each update item to a new form using the specified transform function.
static
Transform<TDestination, TSource, TKey>(IObservable<IChangeSet<TSource, TKey>>, Func<TSource, TKey, TDestination>, IObservable<Func<TSource, TKey, bool>>?) IObservable<IChangeSet<TDestination, TKey>>
Projects each update item to a new form using the specified transform function.
static
Transform<TDestination, TSource, TKey>(IObservable<IChangeSet<TSource, TKey>>, Func<TSource, TKey, TDestination>, IObservable<Unit>) IObservable<IChangeSet<TDestination, TKey>>
Projects each update item to a new form using the specified transform function.
static
TransformAsync<TDestination, TSource, TKey>(IObservable<IChangeSet<TSource, TKey>>, Func<TSource, Optional<TSource>, TKey, Task<TDestination>>, IObservable<Func<TSource, TKey, bool>>?) IObservable<IChangeSet<TDestination, TKey>>
Projects each update item to a new form using the specified transform function.
static
TransformAsync<TDestination, TSource, TKey>(IObservable<IChangeSet<TSource, TKey>>, Func<TSource, Task<TDestination>>, IObservable<Func<TSource, TKey, bool>>?) IObservable<IChangeSet<TDestination, TKey>>
Projects each update item to a new form using the specified transform function.
static
TransformAsync<TDestination, TSource, TKey>(IObservable<IChangeSet<TSource, TKey>>, Func<TSource, TKey, Task<TDestination>>, IObservable<Func<TSource, TKey, bool>>?) IObservable<IChangeSet<TDestination, TKey>>
Projects each update item to a new form using the specified transform function.
static
TransformMany<TDestination, TDestinationKey, TSource, TSourceKey>(IObservable<IChangeSet<TSource, TSourceKey>>, Func<TSource, IEnumerable<TDestination>>, Func<TDestination, TDestinationKey>) IObservable<IChangeSet<TDestination, TDestinationKey>>
Equivalent to a select many transform. To work, the key must individually identify each child.
static
TransformMany<TDestination, TDestinationKey, TSource, TSourceKey>(IObservable<IChangeSet<TSource, TSourceKey>>, Func<TSource, ObservableCollection<TDestination>>, Func<TDestination, TDestinationKey>) IObservable<IChangeSet<TDestination, TDestinationKey>>
Flatten the nested observable collection, and subsequently observe observable collection changes.
static
TransformMany<TDestination, TDestinationKey, TSource, TSourceKey>(IObservable<IChangeSet<TSource, TSourceKey>>, Func<TSource, ReadOnlyObservableCollection<TDestination>>, Func<TDestination, TDestinationKey>) IObservable<IChangeSet<TDestination, TDestinationKey>>
Flatten the nested observable collection, and subsequently observe observable collection changes.
static
TransformSafe<TDestination, TSource, TKey>(IObservable<IChangeSet<TSource, TKey>>, Func<TSource, Optional<TSource>, TKey, TDestination>, Action<Error<TSource, TKey>>, IObservable<Func<TSource, TKey, bool>>?) IObservable<IChangeSet<TDestination, TKey>>
Projects each update item to a new form using the specified transform function, providing an error handling action to safely handle transform errors without killing the stream.
static
TransformSafe<TDestination, TSource, TKey>(IObservable<IChangeSet<TSource, TKey>>, Func<TSource, Optional<TSource>, TKey, TDestination>, Action<Error<TSource, TKey>>, IObservable<Unit>) IObservable<IChangeSet<TDestination, TKey>>
Projects each update item to a new form using the specified transform function, providing an error handling action to safely handle transform errors without killing the stream.
static
TransformSafe<TDestination, TSource, TKey>(IObservable<IChangeSet<TSource, TKey>>, Func<TSource, TDestination>, Action<Error<TSource, TKey>>, IObservable<Func<TSource, bool>>?) IObservable<IChangeSet<TDestination, TKey>>
Projects each update item to a new form using the specified transform function, providing an error handling action to safely handle transform errors without killing the stream.
static
TransformSafe<TDestination, TSource, TKey>(IObservable<IChangeSet<TSource, TKey>>, Func<TSource, TDestination>, Action<Error<TSource, TKey>>, IObservable<Unit>) IObservable<IChangeSet<TDestination, TKey>>
Projects each update item to a new form using the specified transform function, providing an error handling action to safely handle transform errors without killing the stream.
static
TransformSafe<TDestination, TSource, TKey>(IObservable<IChangeSet<TSource, TKey>>, Func<TSource, TKey, TDestination>, Action<Error<TSource, TKey>>, IObservable<Func<TSource, TKey, bool>>?) IObservable<IChangeSet<TDestination, TKey>>
Projects each update item to a new form using the specified transform function, providing an error handling action to safely handle transform errors without killing the stream.
static
TransformSafe<TDestination, TSource, TKey>(IObservable<IChangeSet<TSource, TKey>>, Func<TSource, TKey, TDestination>, Action<Error<TSource, TKey>>, IObservable<Unit>) IObservable<IChangeSet<TDestination, TKey>>
Projects each update item to a new form using the specified transform function, providing an error handling action to safely handle transform errors without killing the stream.
static
TransformSafeAsync<TDestination, TSource, TKey>(IObservable<IChangeSet<TSource, TKey>>, Func<TSource, Optional<TSource>, TKey, Task<TDestination>>, Action<Error<TSource, TKey>>, IObservable<Func<TSource, TKey, bool>>?) IObservable<IChangeSet<TDestination, TKey>>
Projects each update item to a new form using the specified transform function.
static
TransformSafeAsync<TDestination, TSource, TKey>(IObservable<IChangeSet<TSource, TKey>>, Func<TSource, Task<TDestination>>, Action<Error<TSource, TKey>>, IObservable<Func<TSource, TKey, bool>>?) IObservable<IChangeSet<TDestination, TKey>>
Projects each update item to a new form using the specified transform function.
static
TransformSafeAsync<TDestination, TSource, TKey>(IObservable<IChangeSet<TSource, TKey>>, Func<TSource, TKey, Task<TDestination>>, Action<Error<TSource, TKey>>, IObservable<Func<TSource, TKey, bool>>?) IObservable<IChangeSet<TDestination, TKey>>
Projects each update item to a new form using the specified transform function.
static
TransformToTree<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, Func<TObject, TKey>, IObservable<Func<Node<TObject, TKey>, bool>>?) IObservable<IChangeSet<Node<TObject, TKey>, TKey>>
Transforms the object to a fully recursive tree, create a hierarchy based on the pivot function.
static
TreatMovesAsRemoveAdd<TObject, TKey>(IObservable<ISortedChangeSet<TObject, TKey>>) IObservable<ISortedChangeSet<TObject, TKey>>
Converts moves changes to remove + add.
static
TrueForAll<TObject, TKey, TValue>(IObservable<IChangeSet<TObject, TKey>>, Func<TObject, IObservable<TValue>>, Func<TObject, TValue, bool>) IObservable<bool>
Produces a boolean observable indicating whether the latest resulting value from all of the specified observables matches the equality condition. The observable is re-evaluated whenever i) The cache changes or ii) The inner observable changes.
static
TrueForAll<TObject, TKey, TValue>(IObservable<IChangeSet<TObject, TKey>>, Func<TObject, IObservable<TValue>>, Func<TValue, bool>) IObservable<bool>
Produces a boolean observable indicating whether the latest resulting value from all of the specified observables matches the equality condition. The observable is re-evaluated whenever i) The cache changes or ii) The inner observable changes.
static
TrueForAny<TObject, TKey, TValue>(IObservable<IChangeSet<TObject, TKey>>, Func<TObject, IObservable<TValue>>, Func<TObject, TValue, bool>) IObservable<bool>
Produces a boolean observable indicating whether the resulting value of whether any of the specified observables matches the equality condition. The observable is re-evaluated whenever i) The cache changes. or ii) The inner observable changes.
static
TrueForAny<TObject, TKey, TValue>(IObservable<IChangeSet<TObject, TKey>>, Func<TObject, IObservable<TValue>>, Func<TValue, bool>) IObservable<bool>
Produces a boolean observable indicating whether the resulting value of whether any of the specified observables matches the equality condition. The observable is re-evaluated whenever i) The cache changes. or ii) The inner observable changes.
static
UpdateIndex<TObject, TKey>(IObservable<ISortedChangeSet<TObject, TKey>>) IObservable<ISortedChangeSet<TObject, TKey>>
Updates the index for an object which implements IIndexAware.
static
Virtualise<TObject, TKey>(IObservable<ISortedChangeSet<TObject, TKey>>, IObservable<IVirtualRequest>) IObservable<IVirtualChangeSet<TObject, TKey>>
Virtualises the underlying data from the specified source.
static
Watch<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, TKey) IObservable<Change<TObject, TKey>>
Returns an observable of any updates which match the specified key, proceeded with the initial cache state.
static
WatchValue<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, TKey) IObservable<TObject>
Watches updates for a single value matching the specified key.
static
WatchValue<TObject, TKey>(IObservableCache<TObject, TKey>, TKey) IObservable<TObject>
Watches updates for a single value matching the specified key.
static
WhenAnyPropertyChanged<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, string[]) IObservable<TObject?>
Watches each item in the collection and notifies when any of them has changed.
static
WhenPropertyChanged<TObject, TKey, TValue>(IObservable<IChangeSet<TObject, TKey>>, Expression<Func<TObject, TValue>>, bool) IObservable<PropertyValue<TObject, TValue>>
Watches each item in the collection and notifies when any of them has changed.
static
WhenValueChanged<TObject, TKey, TValue>(IObservable<IChangeSet<TObject, TKey>>, Expression<Func<TObject, TValue>>, bool) IObservable<TValue?>
Watches each item in the collection and notifies when any of them has changed.
static
WhereReasonsAre<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, ChangeReason[]) IObservable<IChangeSet<TObject, TKey>>
Includes changes for the specified reasons only.
static
WhereReasonsAreNot<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, ChangeReason[]) IObservable<IChangeSet<TObject, TKey>>
Excludes updates for the specified reasons.
static
Xor<TObject, TKey>(ICollection<IObservable<IChangeSet<TObject, TKey>>>) IObservable<IChangeSet<TObject, TKey>>
Apply a logical Xor operator between the collections. Items which are only in one of the sources are included in the result.
static
Xor<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>>, IObservable<IChangeSet<TObject, TKey>>[]) IObservable<IChangeSet<TObject, TKey>>
Apply a logical Xor operator between the collections. Items which are only in one of the sources are included in the result.
static
Xor<TObject, TKey>(IObservableList<IObservable<IChangeSet<TObject, TKey>>>) IObservable<IChangeSet<TObject, TKey>>
Dynamically apply a logical Xor operator between the items in the outer observable list. Items which are only in one of the sources are included in the result.
static
Xor<TObject, TKey>(IObservableList<IObservableCache<TObject, TKey>>) IObservable<IChangeSet<TObject, TKey>>
Dynamically apply a logical Xor operator between the items in the outer observable list. Items which are in any of the sources are included in the result.
static
Xor<TObject, TKey>(IObservableList<ISourceCache<TObject, TKey>>) IObservable<IChangeSet<TObject, TKey>>
Dynamically apply a logical Xor operator between the items in the outer observable list. Items which are in any of the sources are included in the result.
static

Extension Methods

Name Value Summary
InvokeViewModelAction<T>(Action<T>) object
This is a thing I lifted from Prism.