Skip to content

Commit

Permalink
Feature: List MergeManyChangeSets for Cache ChangeSets (#744)
Browse files Browse the repository at this point in the history
* Updated List to have same new MergeMany behavior

* Added List -> Cache Merge ChangeSets and MergeChangeSets for Cache

* All unit tests pass except for 2

* More tests

* Revert changes that are moved to another PR

* Still blocked on Replace test

* Clean up

* Add replace tests

* Test improvements

* Fix broken tests

* Fixed Operator and Unit Tests

* Added new Extension methods to verified API files

---------

Co-authored-by: Roland Pheasant <roland_pheasant@hotmail.com>
Co-authored-by: Chris Pulman <chris.pulman@yahoo.com>
  • Loading branch information
3 people authored Nov 22, 2023
1 parent 2a2757d commit 5df6831
Show file tree
Hide file tree
Showing 7 changed files with 888 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2079,6 +2079,14 @@ namespace DynamicData
where T : notnull { }
public static System.IObservable<TDestination> MergeMany<T, TDestination>(this System.IObservable<DynamicData.IChangeSet<T>> source, System.Func<T, System.IObservable<TDestination>> observableSelector)
where T : notnull { }
public static System.IObservable<DynamicData.IChangeSet<TDestination, TDestinationKey>> MergeManyChangeSets<TObject, TDestination, TDestinationKey>(this System.IObservable<DynamicData.IChangeSet<TObject>> source, System.Func<TObject, System.IObservable<DynamicData.IChangeSet<TDestination, TDestinationKey>>> observableSelector, System.Collections.Generic.IComparer<TDestination> comparer)
where TObject : notnull
where TDestination : notnull
where TDestinationKey : notnull { }
public static System.IObservable<DynamicData.IChangeSet<TDestination, TDestinationKey>> MergeManyChangeSets<TObject, TDestination, TDestinationKey>(this System.IObservable<DynamicData.IChangeSet<TObject>> source, System.Func<TObject, System.IObservable<DynamicData.IChangeSet<TDestination, TDestinationKey>>> observableSelector, System.Collections.Generic.IEqualityComparer<TDestination>? equalityComparer = null, System.Collections.Generic.IComparer<TDestination>? comparer = null)
where TObject : notnull
where TDestination : notnull
where TDestinationKey : notnull { }
public static System.IObservable<DynamicData.IChangeSet<T>> NotEmpty<T>(this System.IObservable<DynamicData.IChangeSet<T>> source)
where T : notnull { }
public static System.IObservable<DynamicData.IChangeSet<T>> OnItemAdded<T>(this System.IObservable<DynamicData.IChangeSet<T>> source, System.Action<T> addAction)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2079,6 +2079,14 @@ namespace DynamicData
where T : notnull { }
public static System.IObservable<TDestination> MergeMany<T, TDestination>(this System.IObservable<DynamicData.IChangeSet<T>> source, System.Func<T, System.IObservable<TDestination>> observableSelector)
where T : notnull { }
public static System.IObservable<DynamicData.IChangeSet<TDestination, TDestinationKey>> MergeManyChangeSets<TObject, TDestination, TDestinationKey>(this System.IObservable<DynamicData.IChangeSet<TObject>> source, System.Func<TObject, System.IObservable<DynamicData.IChangeSet<TDestination, TDestinationKey>>> observableSelector, System.Collections.Generic.IComparer<TDestination> comparer)
where TObject : notnull
where TDestination : notnull
where TDestinationKey : notnull { }
public static System.IObservable<DynamicData.IChangeSet<TDestination, TDestinationKey>> MergeManyChangeSets<TObject, TDestination, TDestinationKey>(this System.IObservable<DynamicData.IChangeSet<TObject>> source, System.Func<TObject, System.IObservable<DynamicData.IChangeSet<TDestination, TDestinationKey>>> observableSelector, System.Collections.Generic.IEqualityComparer<TDestination>? equalityComparer = null, System.Collections.Generic.IComparer<TDestination>? comparer = null)
where TObject : notnull
where TDestination : notnull
where TDestinationKey : notnull { }
public static System.IObservable<DynamicData.IChangeSet<T>> NotEmpty<T>(this System.IObservable<DynamicData.IChangeSet<T>> source)
where T : notnull { }
public static System.IObservable<DynamicData.IChangeSet<T>> OnItemAdded<T>(this System.IObservable<DynamicData.IChangeSet<T>> source, System.Action<T> addAction)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2079,6 +2079,14 @@ namespace DynamicData
where T : notnull { }
public static System.IObservable<TDestination> MergeMany<T, TDestination>(this System.IObservable<DynamicData.IChangeSet<T>> source, System.Func<T, System.IObservable<TDestination>> observableSelector)
where T : notnull { }
public static System.IObservable<DynamicData.IChangeSet<TDestination, TDestinationKey>> MergeManyChangeSets<TObject, TDestination, TDestinationKey>(this System.IObservable<DynamicData.IChangeSet<TObject>> source, System.Func<TObject, System.IObservable<DynamicData.IChangeSet<TDestination, TDestinationKey>>> observableSelector, System.Collections.Generic.IComparer<TDestination> comparer)
where TObject : notnull
where TDestination : notnull
where TDestinationKey : notnull { }
public static System.IObservable<DynamicData.IChangeSet<TDestination, TDestinationKey>> MergeManyChangeSets<TObject, TDestination, TDestinationKey>(this System.IObservable<DynamicData.IChangeSet<TObject>> source, System.Func<TObject, System.IObservable<DynamicData.IChangeSet<TDestination, TDestinationKey>>> observableSelector, System.Collections.Generic.IEqualityComparer<TDestination>? equalityComparer = null, System.Collections.Generic.IComparer<TDestination>? comparer = null)
where TObject : notnull
where TDestination : notnull
where TDestinationKey : notnull { }
public static System.IObservable<DynamicData.IChangeSet<T>> NotEmpty<T>(this System.IObservable<DynamicData.IChangeSet<T>> source)
where T : notnull { }
public static System.IObservable<DynamicData.IChangeSet<T>> OnItemAdded<T>(this System.IObservable<DynamicData.IChangeSet<T>> source, System.Action<T> addAction)
Expand Down
Loading

0 comments on commit 5df6831

Please sign in to comment.