From d11f35324acb865e341d37fa2a78172efed072e6 Mon Sep 17 00:00:00 2001 From: Chris Pulman Date: Thu, 16 Nov 2023 08:03:00 +0000 Subject: [PATCH] Feature : Add API Tests --- .gitignore | 2 +- src/DynamicData.Tests/API/ApiApprovalBase.cs | 43 + ...ts.DynamicDataTests.DotNet6_0.verified.txt | 2731 +++++++++++++++++ src/DynamicData.Tests/API/ApiApprovalTests.cs | 20 + .../DynamicData.Tests.csproj | 6 +- 5 files changed, 2799 insertions(+), 3 deletions(-) create mode 100644 src/DynamicData.Tests/API/ApiApprovalBase.cs create mode 100644 src/DynamicData.Tests/API/ApiApprovalTests.DynamicDataTests.DotNet6_0.verified.txt create mode 100644 src/DynamicData.Tests/API/ApiApprovalTests.cs diff --git a/.gitignore b/.gitignore index 22729414e..cc0cf38bc 100644 --- a/.gitignore +++ b/.gitignore @@ -365,7 +365,7 @@ FodyWeavers.xsd .DS_Store # API Tests -src/*.Tests/**/ApiApprovalTests*.received.txt +src/*.Tests/API/ApiApprovalTests.*.received.txt # JetBrains .idea/ diff --git a/src/DynamicData.Tests/API/ApiApprovalBase.cs b/src/DynamicData.Tests/API/ApiApprovalBase.cs new file mode 100644 index 000000000..44b47a6d1 --- /dev/null +++ b/src/DynamicData.Tests/API/ApiApprovalBase.cs @@ -0,0 +1,43 @@ +using System; +using System.Diagnostics.CodeAnalysis; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Threading.Tasks; +using PublicApiGenerator; +using VerifyXunit; + +namespace DynamicData.APITests +{ + /// + /// Api Approval Base. + /// + [ExcludeFromCodeCoverage] + [UsesVerify] + public abstract class ApiApprovalBase + { + /// + /// Check Approval. + /// + /// The assembly. + /// The file path. + /// A representing the result of the asynchronous operation. + protected static Task CheckApproval(Assembly assembly, [CallerFilePath] string? filePath = null) + { + if (filePath is null) + { + return Task.CompletedTask; + } + + var generatorOptions = new ApiGeneratorOptions { AllowNamespacePrefixes = ["DynamicData"] }; + var apiText = assembly.GeneratePublicApi(generatorOptions); + return Verifier.Verify(apiText, null, filePath) + .UniqueForRuntimeAndVersion() + .ScrubEmptyLines() + .ScrubLines(l => + l.StartsWith("[assembly: AssemblyVersion(", StringComparison.InvariantCulture) || + l.StartsWith("[assembly: AssemblyFileVersion(", StringComparison.InvariantCulture) || + l.StartsWith("[assembly: AssemblyInformationalVersion(", StringComparison.InvariantCulture) || + l.StartsWith("[assembly: System.Reflection.AssemblyMetadata(", StringComparison.InvariantCulture)); + } + } +} diff --git a/src/DynamicData.Tests/API/ApiApprovalTests.DynamicDataTests.DotNet6_0.verified.txt b/src/DynamicData.Tests/API/ApiApprovalTests.DynamicDataTests.DotNet6_0.verified.txt new file mode 100644 index 000000000..951dd27af --- /dev/null +++ b/src/DynamicData.Tests/API/ApiApprovalTests.DynamicDataTests.DotNet6_0.verified.txt @@ -0,0 +1,2731 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("DynamicData.Profile")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("DynamicData.ReactiveUI")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("DynamicData.Tests")] +[assembly: System.Runtime.Versioning.TargetFramework(".NETCoreApp,Version=v6.0", FrameworkDisplayName=".NET 6.0")] +namespace DynamicData.Aggregation +{ + public readonly struct AggregateItem : System.IEquatable> + { + public AggregateItem(DynamicData.Aggregation.AggregateType type, TObject item) { } + public TObject Item { get; } + public DynamicData.Aggregation.AggregateType Type { get; } + public bool Equals(DynamicData.Aggregation.AggregateItem other) { } + public override bool Equals(object? obj) { } + public override int GetHashCode() { } + public static bool operator !=(DynamicData.Aggregation.AggregateItem left, DynamicData.Aggregation.AggregateItem right) { } + public static bool operator ==(DynamicData.Aggregation.AggregateItem left, DynamicData.Aggregation.AggregateItem right) { } + } + public enum AggregateType + { + Add = 0, + Remove = 1, + } + public static class AggregationEx + { + public static System.IObservable> ForAggregation(this System.IObservable> source) + where TObject : notnull { } + public static System.IObservable> ForAggregation(this System.IObservable> source) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable InvalidateWhen(this System.IObservable source, System.IObservable invalidate) { } + public static System.IObservable InvalidateWhen(this System.IObservable source, System.IObservable invalidate) { } + } + public static class AvgEx + { + public static System.IObservable Avg(this System.IObservable> source, System.Func valueSelector, [System.Runtime.CompilerServices.DecimalConstant(0, 0, 0u, 0u, 0u)] decimal emptyValue) { } + public static System.IObservable Avg(this System.IObservable> source, System.Func valueSelector, double emptyValue = 0) { } + public static System.IObservable Avg(this System.IObservable> source, System.Func valueSelector, int emptyValue = 0) { } + public static System.IObservable Avg(this System.IObservable> source, System.Func valueSelector, long emptyValue = 0) { } + public static System.IObservable Avg(this System.IObservable> source, System.Func valueSelector, float emptyValue = 0) { } + public static System.IObservable Avg(this System.IObservable> source, System.Func valueSelector, [System.Runtime.CompilerServices.DecimalConstant(0, 0, 0u, 0u, 0u)] decimal emptyValue) { } + public static System.IObservable Avg(this System.IObservable> source, System.Func valueSelector, double emptyValue = 0) { } + public static System.IObservable Avg(this System.IObservable> source, System.Func valueSelector, float emptyValue = 0) { } + public static System.IObservable Avg(this System.IObservable> source, System.Func valueSelector, int emptyValue = 0) { } + public static System.IObservable Avg(this System.IObservable> source, System.Func valueSelector, long emptyValue = 0) { } + public static System.IObservable Avg(this System.IObservable> source, System.Func valueSelector, [System.Runtime.CompilerServices.DecimalConstant(0, 0, 0u, 0u, 0u)] decimal emptyValue) + where T : notnull { } + public static System.IObservable Avg(this System.IObservable> source, System.Func valueSelector, double emptyValue = 0) + where T : notnull { } + public static System.IObservable Avg(this System.IObservable> source, System.Func valueSelector, int emptyValue = 0) + where T : notnull { } + public static System.IObservable Avg(this System.IObservable> source, System.Func valueSelector, long emptyValue = 0) + where T : notnull { } + public static System.IObservable Avg(this System.IObservable> source, System.Func valueSelector, float emptyValue = 0) + where T : notnull { } + public static System.IObservable Avg(this System.IObservable> source, System.Func valueSelector, [System.Runtime.CompilerServices.DecimalConstant(0, 0, 0u, 0u, 0u)] decimal emptyValue) + where T : notnull { } + public static System.IObservable Avg(this System.IObservable> source, System.Func valueSelector, double emptyValue = 0) + where T : notnull { } + public static System.IObservable Avg(this System.IObservable> source, System.Func valueSelector, float emptyValue = 0) + where T : notnull { } + public static System.IObservable Avg(this System.IObservable> source, System.Func valueSelector, int emptyValue = 0) + where T : notnull { } + public static System.IObservable Avg(this System.IObservable> source, System.Func valueSelector, long emptyValue = 0) + where T : notnull { } + public static System.IObservable Avg(this System.IObservable> source, System.Func valueSelector, [System.Runtime.CompilerServices.DecimalConstant(0, 0, 0u, 0u, 0u)] decimal emptyValue) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable Avg(this System.IObservable> source, System.Func valueSelector, double emptyValue = 0) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable Avg(this System.IObservable> source, System.Func valueSelector, int emptyValue = 0) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable Avg(this System.IObservable> source, System.Func valueSelector, long emptyValue = 0) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable Avg(this System.IObservable> source, System.Func valueSelector, float emptyValue = 0) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable Avg(this System.IObservable> source, System.Func valueSelector, [System.Runtime.CompilerServices.DecimalConstant(0, 0, 0u, 0u, 0u)] decimal emptyValue) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable Avg(this System.IObservable> source, System.Func valueSelector, double emptyValue = 0) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable Avg(this System.IObservable> source, System.Func valueSelector, float emptyValue = 0) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable Avg(this System.IObservable> source, System.Func valueSelector, int emptyValue = 0) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable Avg(this System.IObservable> source, System.Func valueSelector, long emptyValue = 0) + where TObject : notnull + where TKey : notnull { } + } + public static class CountEx + { + public static System.IObservable Count(this System.IObservable> source) { } + public static System.IObservable Count(this System.IObservable> source) + where TObject : notnull { } + public static System.IObservable Count(this System.IObservable> source) + where TObject : notnull { } + public static System.IObservable Count(this System.IObservable> source) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable IsEmpty(this System.IObservable> source) + where TObject : notnull { } + public static System.IObservable IsEmpty(this System.IObservable> source) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable IsNotEmpty(this System.IObservable> source) + where TObject : notnull { } + public static System.IObservable IsNotEmpty(this System.IObservable> source) + where TObject : notnull + where TKey : notnull { } + } + public interface IAggregateChangeSet : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable { } + public static class MaxEx + { + public static System.IObservable Maximum(this System.IObservable> source, System.Func valueSelector, TResult emptyValue = default) + where TObject : notnull + where TResult : struct, System.IComparable { } + public static System.IObservable Maximum(this System.IObservable> source, System.Func valueSelector, TResult emptyValue = default) + where TObject : notnull + where TKey : notnull + where TResult : struct, System.IComparable { } + public static System.IObservable Minimum(this System.IObservable> source, System.Func valueSelector, TResult emptyValue = default) + where TObject : notnull + where TResult : struct, System.IComparable { } + public static System.IObservable Minimum(this System.IObservable> source, System.Func valueSelector, TResult emptyValue = default) + where TObject : notnull + where TKey : notnull + where TResult : struct, System.IComparable { } + } + public static class StdDevEx + { + public static System.IObservable StdDev(this System.IObservable> source, System.Func valueSelector, [System.Runtime.CompilerServices.DecimalConstant(0, 0, 0u, 0u, 0u)] decimal fallbackValue) { } + public static System.IObservable StdDev(this System.IObservable> source, System.Func valueSelector, double fallbackValue = 0) { } + public static System.IObservable StdDev(this System.IObservable> source, System.Func valueSelector, int fallbackValue = 0) { } + public static System.IObservable StdDev(this System.IObservable> source, System.Func valueSelector, long fallbackValue = 0) { } + public static System.IObservable StdDev(this System.IObservable> source, System.Func valueSelector, float fallbackValue = 0) { } + public static System.IObservable StdDev(this System.IObservable> source, System.Func valueSelector, decimal fallbackValue) + where T : notnull { } + public static System.IObservable StdDev(this System.IObservable> source, System.Func valueSelector, double fallbackValue) + where T : notnull { } + public static System.IObservable StdDev(this System.IObservable> source, System.Func valueSelector, int fallbackValue) + where T : notnull { } + public static System.IObservable StdDev(this System.IObservable> source, System.Func valueSelector, long fallbackValue) + where T : notnull { } + public static System.IObservable StdDev(this System.IObservable> source, System.Func valueSelector, float fallbackValue = 0) + where T : notnull { } + public static System.IObservable StdDev(this System.IObservable> source, System.Func valueSelector, decimal fallbackValue) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable StdDev(this System.IObservable> source, System.Func valueSelector, double fallbackValue) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable StdDev(this System.IObservable> source, System.Func valueSelector, int fallbackValue) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable StdDev(this System.IObservable> source, System.Func valueSelector, long fallbackValue) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable StdDev(this System.IObservable> source, System.Func valueSelector, float fallbackValue = 0) + where TObject : notnull + where TKey : notnull { } + } + public static class SumEx + { + public static System.IObservable Sum(this System.IObservable> source, System.Func valueSelector) { } + public static System.IObservable Sum(this System.IObservable> source, System.Func valueSelector) { } + public static System.IObservable Sum(this System.IObservable> source, System.Func valueSelector) { } + public static System.IObservable Sum(this System.IObservable> source, System.Func valueSelector) { } + public static System.IObservable Sum(this System.IObservable> source, System.Func valueSelector) { } + public static System.IObservable Sum(this System.IObservable> source, System.Func valueSelector) { } + public static System.IObservable Sum(this System.IObservable> source, System.Func valueSelector) { } + public static System.IObservable Sum(this System.IObservable> source, System.Func valueSelector) { } + public static System.IObservable Sum(this System.IObservable> source, System.Func valueSelector) { } + public static System.IObservable Sum(this System.IObservable> source, System.Func valueSelector) { } + public static System.IObservable Sum(this System.IObservable> source, System.Func valueSelector) + where T : notnull { } + public static System.IObservable Sum(this System.IObservable> source, System.Func valueSelector) + where T : notnull { } + public static System.IObservable Sum(this System.IObservable> source, System.Func valueSelector) + where T : notnull { } + public static System.IObservable Sum(this System.IObservable> source, System.Func valueSelector) + where T : notnull { } + public static System.IObservable Sum(this System.IObservable> source, System.Func valueSelector) + where T : notnull { } + public static System.IObservable Sum(this System.IObservable> source, System.Func valueSelector) + where T : notnull { } + public static System.IObservable Sum(this System.IObservable> source, System.Func valueSelector) + where T : notnull { } + public static System.IObservable Sum(this System.IObservable> source, System.Func valueSelector) + where T : notnull { } + public static System.IObservable Sum(this System.IObservable> source, System.Func valueSelector) + where T : notnull { } + public static System.IObservable Sum(this System.IObservable> source, System.Func valueSelector) + where T : notnull { } + public static System.IObservable Sum(this System.IObservable> source, System.Func valueSelector) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable Sum(this System.IObservable> source, System.Func valueSelector) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable Sum(this System.IObservable> source, System.Func valueSelector) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable Sum(this System.IObservable> source, System.Func valueSelector) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable Sum(this System.IObservable> source, System.Func valueSelector) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable Sum(this System.IObservable> source, System.Func valueSelector) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable Sum(this System.IObservable> source, System.Func valueSelector) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable Sum(this System.IObservable> source, System.Func valueSelector) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable Sum(this System.IObservable> source, System.Func valueSelector) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable Sum(this System.IObservable> source, System.Func valueSelector) + where TObject : notnull + where TKey : notnull { } + } +} +namespace DynamicData.Alias +{ + public static class ObservableCacheAlias + { + public static System.IObservable> Select(this System.IObservable> source, System.Func transformFactory, System.IObservable forceTransform) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> Select(this System.IObservable> source, System.Func transformFactory, System.IObservable>? forceTransform = null) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> Select(this System.IObservable> source, System.Func transformFactory, System.IObservable forceTransform) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> Select(this System.IObservable> source, System.Func transformFactory, System.IObservable>? forceTransform = null) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> SelectMany(this System.IObservable> source, System.Func> manySelector, System.Func keySelector) + where TDestination : notnull + where TDestinationKey : notnull + where TSource : notnull + where TSourceKey : notnull { } + public static System.IObservable> SelectSafe(this System.IObservable> source, System.Func transformFactory, System.Action> errorHandler, System.IObservable forceTransform) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> SelectSafe(this System.IObservable> source, System.Func transformFactory, System.Action> errorHandler, System.IObservable>? forceTransform = null) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> SelectSafe(this System.IObservable> source, System.Func transformFactory, System.Action> errorHandler, System.IObservable forceTransform) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> SelectSafe(this System.IObservable> source, System.Func transformFactory, System.Action> errorHandler, System.IObservable>? forceTransform = null) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable, TKey>> SelectTree(this System.IObservable> source, System.Func pivotOn) + where TObject : class + where TKey : notnull { } + public static System.IObservable> Where(this System.IObservable> source, System.Func filter) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Where(this System.IObservable> source, System.IObservable> predicateChanged) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Where(this System.IObservable> source, System.IObservable reapplyFilter) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Where(this System.IObservable> source, System.IObservable> predicateChanged, System.IObservable reapplyFilter) + where TObject : notnull + where TKey : notnull { } + } + public static class ObservableListAlias + { + public static System.IObservable> Select(this System.IObservable> source, System.Func transformFactory) + where TSource : notnull + where TDestination : notnull { } + public static System.IObservable> SelectMany(this System.IObservable> source, System.Func> manySelector) + where TDestination : notnull + where TSource : notnull { } + public static System.IObservable> Where(this System.IObservable> source, System.Func predicate) + where T : notnull { } + public static System.IObservable> Where(this System.IObservable> source, System.IObservable> predicate) + where T : notnull { } + } +} +namespace DynamicData.Binding +{ + public abstract class AbstractNotifyPropertyChanged : System.ComponentModel.INotifyPropertyChanged + { + protected AbstractNotifyPropertyChanged() { } + public event System.ComponentModel.PropertyChangedEventHandler? PropertyChanged; + protected virtual void OnPropertyChanged([System.Runtime.CompilerServices.CallerMemberName] string? propertyName = null) { } + protected virtual void SetAndRaise(ref T backingField, T newValue, [System.Runtime.CompilerServices.CallerMemberName] string? propertyName = null) { } + protected virtual void SetAndRaise(ref T backingField, T newValue, System.Collections.Generic.IEqualityComparer? comparer, [System.Runtime.CompilerServices.CallerMemberName] string? propertyName = null) { } + [System.Obsolete("This never worked properly in the first place")] + public System.IDisposable SuspendNotifications(bool invokePropertyChangeEventWhenDisposed = true) { } + } + public class BindingListAdaptor : DynamicData.IChangeSetAdaptor + where T : notnull + { + public BindingListAdaptor(System.ComponentModel.BindingList list, int refreshThreshold = 25) { } + public void Adapt(DynamicData.IChangeSet changes) { } + } + public class BindingListAdaptor : DynamicData.IChangeSetAdaptor + where TObject : notnull + where TKey : notnull + { + public BindingListAdaptor(System.ComponentModel.BindingList list, int refreshThreshold = 25) { } + public void Adapt(DynamicData.IChangeSet changes) { } + } + public static class BindingListEx + { + public static System.IObservable> ObserveCollectionChanges(this System.ComponentModel.IBindingList source) { } + public static System.IObservable> ToObservableChangeSet(this System.ComponentModel.BindingList source) + where T : notnull { } + public static System.IObservable> ToObservableChangeSet(this TCollection source) + where TCollection : System.ComponentModel.IBindingList, System.Collections.Generic.IEnumerable + where T : notnull { } + public static System.IObservable> ToObservableChangeSet(this System.ComponentModel.BindingList source, System.Func keySelector) + where TObject : notnull + where TKey : notnull { } + } + public interface IEvaluateAware + { + void Evaluate(); + } + public interface IIndexAware + { + int Index { get; set; } + } + public interface INotifyCollectionChangedSuspender + { + System.IDisposable SuspendCount(); + System.IDisposable SuspendNotifications(); + } + public interface IObservableCollectionAdaptor + where TObject : notnull + where TKey : notnull + { + void Adapt(DynamicData.IChangeSet changes, DynamicData.Binding.IObservableCollection collection); + } + public interface IObservableCollection : DynamicData.Binding.INotifyCollectionChangedSuspender, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.IEnumerable, System.Collections.Specialized.INotifyCollectionChanged, System.ComponentModel.INotifyPropertyChanged + { + void Load(System.Collections.Generic.IEnumerable items); + void Move(int oldIndex, int newIndex); + } + public static class IObservableListEx + { + public static System.IObservable> BindToObservableList(this System.IObservable> source, out DynamicData.IObservableList observableList) + where TObject : notnull { } + public static System.IObservable> BindToObservableList(this System.IObservable> source, out DynamicData.IObservableList observableList) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> BindToObservableList(this System.IObservable> source, out DynamicData.IObservableList observableList) + where TObject : notnull + where TKey : notnull { } + } + public interface ISortedObservableCollectionAdaptor + where TObject : notnull + where TKey : notnull + { + void Adapt(DynamicData.ISortedChangeSet changes, DynamicData.Binding.IObservableCollection collection); + } + public static class NotifyPropertyChangedEx + { + public static System.IObservable WhenAnyPropertyChanged(this TObject source, params string[] propertiesToMonitor) + where TObject : System.ComponentModel.INotifyPropertyChanged { } + public static System.IObservable WhenChanged(this TObject source, System.Linq.Expressions.Expression> p1, System.Func resultSelector, System.Func? p1Fallback = null) + where TObject : System.ComponentModel.INotifyPropertyChanged { } + public static System.IObservable WhenChanged(this TObject source, System.Linq.Expressions.Expression> p1, System.Linq.Expressions.Expression> p2, System.Func resultSelector, System.Func? p1Fallback = null, System.Func? p2Fallback = null) + where TObject : System.ComponentModel.INotifyPropertyChanged { } + public static System.IObservable WhenChanged(this TObject source, System.Linq.Expressions.Expression> p1, System.Linq.Expressions.Expression> p2, System.Linq.Expressions.Expression> p3, System.Func resultSelector, System.Func? p1Fallback = null, System.Func? p2Fallback = null, System.Func? p3Fallback = null) + where TObject : System.ComponentModel.INotifyPropertyChanged { } + public static System.IObservable WhenChanged(this TObject source, System.Linq.Expressions.Expression> p1, System.Linq.Expressions.Expression> p2, System.Linq.Expressions.Expression> p3, System.Linq.Expressions.Expression> p4, System.Func resultSelector, System.Func? p1Fallback = null, System.Func? p2Fallback = null, System.Func? p3Fallback = null, System.Func? p4Fallback = null) + where TObject : System.ComponentModel.INotifyPropertyChanged { } + public static System.IObservable WhenChanged(this TObject source, System.Linq.Expressions.Expression> p1, System.Linq.Expressions.Expression> p2, System.Linq.Expressions.Expression> p3, System.Linq.Expressions.Expression> p4, System.Linq.Expressions.Expression> p5, System.Func resultSelector, System.Func? p1Fallback = null, System.Func? p2Fallback = null, System.Func? p3Fallback = null, System.Func? p4Fallback = null, System.Func? p5Fallback = null) + where TObject : System.ComponentModel.INotifyPropertyChanged { } + public static System.IObservable WhenChanged(this TObject source, System.Linq.Expressions.Expression> p1, System.Linq.Expressions.Expression> p2, System.Linq.Expressions.Expression> p3, System.Linq.Expressions.Expression> p4, System.Linq.Expressions.Expression> p5, System.Linq.Expressions.Expression> p6, System.Func resultSelector, System.Func? p1Fallback = null, System.Func? p2Fallback = null, System.Func? p3Fallback = null, System.Func? p4Fallback = null, System.Func? p5Fallback = null, System.Func? p6Fallback = null) + where TObject : System.ComponentModel.INotifyPropertyChanged { } + public static System.IObservable> WhenPropertyChanged(this TObject source, System.Linq.Expressions.Expression> propertyAccessor, bool notifyOnInitialValue = true, System.Func? fallbackValue = null) + where TObject : System.ComponentModel.INotifyPropertyChanged { } + public static System.IObservable WhenValueChanged(this TObject source, System.Linq.Expressions.Expression> propertyAccessor, bool notifyOnInitialValue = true, System.Func? fallbackValue = null) + where TObject : System.ComponentModel.INotifyPropertyChanged { } + } + public class ObservableCollectionAdaptor : DynamicData.IChangeSetAdaptor + where T : notnull + { + public ObservableCollectionAdaptor(DynamicData.Binding.IObservableCollection collection, int refreshThreshold = 25) { } + public void Adapt(DynamicData.IChangeSet changes) { } + } + public class ObservableCollectionAdaptor : DynamicData.Binding.IObservableCollectionAdaptor + where TObject : notnull + where TKey : notnull + { + public ObservableCollectionAdaptor(int refreshThreshold = 25, bool useReplaceForUpdates = false) { } + public void Adapt(DynamicData.IChangeSet changes, DynamicData.Binding.IObservableCollection collection) { } + } + public static class ObservableCollectionEx + { + public static System.IObservable> ObserveCollectionChanges(this System.Collections.Specialized.INotifyCollectionChanged source) { } + public static System.IObservable> ToObservableChangeSet(this System.Collections.ObjectModel.ObservableCollection source) + where T : notnull { } + public static System.IObservable> ToObservableChangeSet(this System.Collections.ObjectModel.ReadOnlyObservableCollection source) + where T : notnull { } + public static System.IObservable> ToObservableChangeSet(this TCollection source) + where TCollection : System.Collections.Specialized.INotifyCollectionChanged, System.Collections.Generic.IEnumerable + where T : notnull { } + public static System.IObservable> ToObservableChangeSet(this System.Collections.ObjectModel.ObservableCollection source, System.Func keySelector) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> ToObservableChangeSet(this System.Collections.ObjectModel.ReadOnlyObservableCollection source, System.Func keySelector) + where TObject : notnull + where TKey : notnull { } + } + public class ObservableCollectionExtended : System.Collections.ObjectModel.ObservableCollection, DynamicData.Binding.INotifyCollectionChangedSuspender, DynamicData.Binding.IObservableCollection, DynamicData.IExtendedList, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.IEnumerable, System.Collections.Specialized.INotifyCollectionChanged, System.ComponentModel.INotifyPropertyChanged + { + public ObservableCollectionExtended() { } + public ObservableCollectionExtended(System.Collections.Generic.IEnumerable collection) { } + public ObservableCollectionExtended(System.Collections.Generic.List list) { } + public void AddRange(System.Collections.Generic.IEnumerable collection) { } + public void InsertRange(System.Collections.Generic.IEnumerable collection, int index) { } + public void Load(System.Collections.Generic.IEnumerable items) { } + protected override void OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { } + protected override void OnPropertyChanged(System.ComponentModel.PropertyChangedEventArgs e) { } + public void RemoveRange(int index, int count) { } + public System.IDisposable SuspendCount() { } + public System.IDisposable SuspendNotifications() { } + } + public sealed class PropertyValue : System.IEquatable> + { + public PropertyValue(TObject sender, TValue value) { } + public TObject Sender { get; } + public TValue Value { get; } + public bool Equals(DynamicData.Binding.PropertyValue? other) { } + public override bool Equals(object? obj) { } + public override int GetHashCode() { } + public override string ToString() { } + public static bool operator !=(DynamicData.Binding.PropertyValue? left, DynamicData.Binding.PropertyValue? right) { } + public static bool operator ==(DynamicData.Binding.PropertyValue? left, DynamicData.Binding.PropertyValue? right) { } + } + public enum SortDirection + { + Ascending = 0, + Descending = 1, + } + public class SortExpressionComparer : System.Collections.Generic.List>, System.Collections.Generic.IComparer + { + public SortExpressionComparer() { } + public int Compare(T? x, T? y) { } + public DynamicData.Binding.SortExpressionComparer ThenByAscending(System.Func expression) { } + public DynamicData.Binding.SortExpressionComparer ThenByDescending(System.Func expression) { } + public static DynamicData.Binding.SortExpressionComparer Ascending(System.Func expression) { } + public static DynamicData.Binding.SortExpressionComparer Descending(System.Func expression) { } + } + public class SortExpression + { + public SortExpression(System.Func expression, DynamicData.Binding.SortDirection direction = 0) { } + public DynamicData.Binding.SortDirection Direction { get; } + public System.Func Expression { get; } + } + public class SortedBindingListAdaptor : DynamicData.ISortedChangeSetAdaptor + where TObject : notnull + where TKey : notnull + { + public SortedBindingListAdaptor(System.ComponentModel.BindingList list, int refreshThreshold = 25) { } + public void Adapt(DynamicData.ISortedChangeSet changes) { } + } + public class SortedObservableCollectionAdaptor : DynamicData.Binding.ISortedObservableCollectionAdaptor + where TObject : notnull + where TKey : notnull + { + public SortedObservableCollectionAdaptor(int refreshThreshold = 25, bool useReplaceForUpdates = true) { } + public void Adapt(DynamicData.ISortedChangeSet changes, DynamicData.Binding.IObservableCollection collection) { } + } +} +namespace DynamicData.Cache.Internal +{ + public enum CombineOperator + { + And = 0, + Or = 1, + Xor = 2, + Except = 3, + } + [System.Serializable] + public class KeySelectorException : System.Exception + { + public KeySelectorException() { } + public KeySelectorException(string message) { } + protected KeySelectorException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) { } + public KeySelectorException(string message, System.Exception innerException) { } + } + [System.Diagnostics.DebuggerDisplay("LockFreeObservableCache<{typeof(TObject).Name}, {typeof(TKey).Name}> ({Count} Ite" + + "ms)")] + public sealed class LockFreeObservableCache : DynamicData.IConnectableCache, DynamicData.IObservableCache, System.IDisposable + where TObject : notnull + where TKey : notnull + { + public LockFreeObservableCache() { } + public LockFreeObservableCache(System.IObservable> source) { } + public int Count { get; } + public System.IObservable CountChanged { get; } + public System.Collections.Generic.IEnumerable Items { get; } + public System.Collections.Generic.IEnumerable> KeyValues { get; } + public System.Collections.Generic.IEnumerable Keys { get; } + public System.IObservable> Connect(System.Func? predicate = null, bool suppressEmptyChangeSets = true) { } + public void Dispose() { } + public void Edit(System.Action> editAction) { } + public DynamicData.Kernel.Optional Lookup(TKey key) { } + public System.IObservable> Preview(System.Func? predicate = null) { } + public System.IObservable> Watch(TKey key) { } + } +} +namespace DynamicData +{ + public sealed class ChangeAwareCache : DynamicData.ICache, DynamicData.IQuery + where TObject : notnull + where TKey : notnull + { + public ChangeAwareCache() { } + public ChangeAwareCache(System.Collections.Generic.Dictionary data) { } + public ChangeAwareCache(int capacity) { } + public int Count { get; } + public System.Collections.Generic.IEnumerable Items { get; } + public System.Collections.Generic.IEnumerable> KeyValues { get; } + public System.Collections.Generic.IEnumerable Keys { get; } + public void Add(TObject item, TKey key) { } + public void AddOrUpdate(TObject item, TKey key) { } + public DynamicData.ChangeSet CaptureChanges() { } + public void Clear() { } + public void Clone(DynamicData.IChangeSet changes) { } + public DynamicData.Kernel.Optional Lookup(TKey key) { } + public void Refresh() { } + public void Refresh(System.Collections.Generic.IEnumerable keys) { } + public void Refresh(TKey key) { } + public void Remove(System.Collections.Generic.IEnumerable keys) { } + public void Remove(TKey key) { } + } + public class ChangeAwareList : DynamicData.IExtendedList, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.IEnumerable + where T : notnull + { + public ChangeAwareList(System.Collections.Generic.IEnumerable items) { } + public ChangeAwareList(int capacity = -1) { } + public ChangeAwareList(DynamicData.ChangeAwareList list, bool copyChanges) { } + public int Capacity { get; set; } + public int Count { get; } + public bool IsReadOnly { get; } + public T this[int index] { get; set; } + public void Add(T item) { } + public void AddRange(System.Collections.Generic.IEnumerable collection) { } + public DynamicData.IChangeSet CaptureChanges() { } + public virtual void Clear() { } + public virtual bool Contains(T item) { } + public void CopyTo(T[] array, int arrayIndex) { } + public System.Collections.Generic.IEnumerator GetEnumerator() { } + public int IndexOf(T item) { } + public int IndexOf(T item, System.Collections.Generic.IEqualityComparer equalityComparer) { } + public void Insert(int index, T item) { } + protected virtual void InsertItem(int index, T item) { } + public void InsertRange(System.Collections.Generic.IEnumerable collection, int index) { } + public virtual void Move(int original, int destination) { } + public virtual void Move(T item, int destination) { } + protected virtual void OnInsertItems(int startIndex, System.Collections.Generic.IEnumerable items) { } + protected virtual void OnRemoveItems(int startIndex, System.Collections.Generic.IEnumerable items) { } + protected virtual void OnSetItem(int index, T newItem, T oldItem) { } + public bool Refresh(T item) { } + public void Refresh(T item, int index) { } + public void RefreshAt(int index) { } + public bool Remove(T item) { } + public void RemoveAt(int index) { } + protected void RemoveItem(int index) { } + protected virtual void RemoveItem(int index, T item) { } + public void RemoveRange(int index, int count) { } + protected virtual void SetItem(int index, T item) { } + } + public enum ChangeReason + { + Add = 0, + Update = 1, + Remove = 2, + Refresh = 3, + Moved = 4, + } + public static class ChangeSetEx + { + public static System.Collections.Generic.IEnumerable> Flatten(this DynamicData.IChangeSet source) + where T : notnull { } + public static DynamicData.ChangeType GetChangeType(this DynamicData.ListChangeReason source) { } + public static DynamicData.IChangeSet Transform(this DynamicData.IChangeSet source, System.Func transformer) + where TSource : notnull + where TDestination : notnull { } + public static System.Collections.Generic.IEnumerable> YieldWithoutIndex(this System.Collections.Generic.IEnumerable> source) + where T : notnull { } + } + public class ChangeSet : System.Collections.Generic.List>, DynamicData.IChangeSet, DynamicData.IChangeSet, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + where T : notnull + { + public static readonly DynamicData.IChangeSet Empty; + public ChangeSet() { } + public ChangeSet(System.Collections.Generic.IEnumerable> items) { } + public int Adds { get; } + public int Moves { get; } + public int Refreshes { get; } + public int Removes { get; } + public int Replaced { get; } + public int TotalChanges { get; } + public override string ToString() { } + } + public class ChangeSet : System.Collections.Generic.List>, DynamicData.IChangeSet, DynamicData.IChangeSet, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + where TObject : notnull + where TKey : notnull + { + public static readonly DynamicData.ChangeSet Empty; + public ChangeSet() { } + public ChangeSet(System.Collections.Generic.IEnumerable> collection) { } + public ChangeSet(int capacity) { } + public int Adds { get; } + public int Moves { get; } + public int Refreshes { get; } + public int Removes { get; } + public int Updates { get; } + public override string ToString() { } + } + public enum ChangeType + { + Item = 0, + Range = 1, + } + public sealed class Change : System.IEquatable> + where T : notnull + { + public Change(DynamicData.ListChangeReason reason, System.Collections.Generic.IEnumerable items, int index = -1) { } + public Change(DynamicData.ListChangeReason reason, T current, int index = -1) { } + public Change(T current, int currentIndex, int previousIndex) { } + public Change(DynamicData.ListChangeReason reason, T current, DynamicData.Kernel.Optional previous, int currentIndex = -1, int previousIndex = -1) { } + public DynamicData.ItemChange Item { get; } + public DynamicData.RangeChange Range { get; } + public DynamicData.ListChangeReason Reason { get; } + public DynamicData.ChangeType Type { get; } + public bool Equals(DynamicData.Change? other) { } + public override bool Equals(object? obj) { } + public override int GetHashCode() { } + public override string ToString() { } + public static bool operator !=(DynamicData.Change left, DynamicData.Change right) { } + public static bool operator ==(DynamicData.Change left, DynamicData.Change right) { } + } + public readonly struct Change : System.IEquatable> + where TObject : notnull + where TKey : notnull + { + public Change(DynamicData.ChangeReason reason, TKey key, TObject current, int index = -1) { } + public Change(TKey key, TObject current, int currentIndex, int previousIndex) { } + public Change(DynamicData.ChangeReason reason, TKey key, TObject current, DynamicData.Kernel.Optional previous, int currentIndex = -1, int previousIndex = -1) { } + public TObject Current { get; } + public int CurrentIndex { get; } + public TKey Key { get; } + public DynamicData.Kernel.Optional Previous { get; } + public int PreviousIndex { get; } + public DynamicData.ChangeReason Reason { get; } + public bool Equals(DynamicData.Change other) { } + public override bool Equals(object? obj) { } + public override int GetHashCode() { } + public override string ToString() { } + public static bool operator !=(DynamicData.Change left, DynamicData.Change right) { } + public static bool operator ==(DynamicData.Change left, DynamicData.Change right) { } + } + public static class EnumerableEx + { + public static System.IObservable> AsObservableChangeSet(this System.Collections.Generic.IEnumerable source, bool completable = false) + where TObject : notnull { } + public static System.IObservable> AsObservableChangeSet(this System.Collections.Generic.IEnumerable source, System.Func keySelector, bool completable = false) + where TObject : notnull + where TKey : notnull { } + } + public interface ICacheUpdater : DynamicData.IQuery + where TObject : notnull + where TKey : notnull + { + void AddOrUpdate(System.Collections.Generic.IEnumerable> keyValuePairs); + void AddOrUpdate(System.Collections.Generic.KeyValuePair item); + void AddOrUpdate(TObject item, TKey key); + void Clear(); + void Clone(DynamicData.IChangeSet changes); + [System.Obsolete("Use Refresh: Same thing but better semantics")] + void Evaluate(); + [System.Obsolete("Use Refresh: Same thing but better semantics")] + void Evaluate(System.Collections.Generic.IEnumerable keys); + [System.Obsolete("Use Refresh: Same thing but better semantics")] + void Evaluate(TKey key); + TKey GetKey(TObject item); + System.Collections.Generic.IEnumerable> GetKeyValues(System.Collections.Generic.IEnumerable items); + void Refresh(); + void Refresh(System.Collections.Generic.IEnumerable keys); + void Refresh(TKey key); + void Remove(System.Collections.Generic.IEnumerable> items); + void Remove(System.Collections.Generic.IEnumerable keys); + void Remove(System.Collections.Generic.KeyValuePair item); + void Remove(TKey key); + void RemoveKey(TKey key); + void RemoveKeys(System.Collections.Generic.IEnumerable key); + [System.Obsolete("Use Clone()")] + void Update(DynamicData.IChangeSet changes); + } + public interface ICache : DynamicData.IQuery + where TObject : notnull + where TKey : notnull + { + void AddOrUpdate(TObject item, TKey key); + void Clear(); + void Clone(DynamicData.IChangeSet changes); + void Refresh(); + void Refresh(System.Collections.Generic.IEnumerable keys); + void Refresh(TKey key); + void Remove(System.Collections.Generic.IEnumerable keys); + void Remove(TKey key); + } + public interface IChangeSet + { + int Adds { get; } + int Capacity { get; set; } + int Count { get; } + int Moves { get; } + int Refreshes { get; } + int Removes { get; } + } + public interface IChangeSetAdaptor + where T : notnull + { + void Adapt(DynamicData.IChangeSet change); + } + public interface IChangeSetAdaptor + where TObject : notnull + where TKey : notnull + { + void Adapt(DynamicData.IChangeSet change); + } + public interface IChangeSet : DynamicData.IChangeSet, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + where TObject : notnull + { + int Replaced { get; } + int TotalChanges { get; } + } + public interface IChangeSet : DynamicData.IChangeSet, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + where TObject : notnull + where TKey : notnull + { + int Updates { get; } + } + public interface IConnectableCache + where TObject : notnull + where TKey : notnull + { + System.IObservable CountChanged { get; } + System.IObservable> Connect(System.Func? predicate = null, bool suppressEmptyChangeSets = true); + System.IObservable> Preview(System.Func? predicate = null); + System.IObservable> Watch(TKey key); + } + public interface IDistinctChangeSet : DynamicData.IChangeSet, DynamicData.IChangeSet, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + where T : notnull { } + public interface IExtendedList : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.IEnumerable + { + void AddRange(System.Collections.Generic.IEnumerable collection); + void InsertRange(System.Collections.Generic.IEnumerable collection, int index); + void Move(int original, int destination); + void RemoveRange(int index, int count); + } + public interface IGroupChangeSet : DynamicData.IChangeSet, DynamicData.IChangeSet, TGroupKey>, System.Collections.Generic.IEnumerable, TGroupKey>>, System.Collections.IEnumerable + where TObject : notnull + where TKey : notnull + where TGroupKey : notnull { } + public interface IGroup + where TObject : notnull + { + TGroup GroupKey { get; } + DynamicData.IObservableList List { get; } + } + public interface IGroup : DynamicData.IKey + where TObject : notnull + where TKey : notnull + { + DynamicData.IObservableCache Cache { get; } + } + public interface IGrouping + where TObject : notnull + { + int Count { get; } + System.Collections.Generic.IEnumerable Items { get; } + TGroupKey Key { get; } + System.Collections.Generic.IEnumerable> KeyValues { get; } + System.Collections.Generic.IEnumerable Keys { get; } + DynamicData.Kernel.Optional Lookup(TKey key); + } + public interface IImmutableGroupChangeSet : DynamicData.IChangeSet, DynamicData.IChangeSet, TGroupKey>, System.Collections.Generic.IEnumerable, TGroupKey>>, System.Collections.IEnumerable + where TObject : notnull + where TKey : notnull + where TGroupKey : notnull { } + public interface IIntermediateCache : DynamicData.IConnectableCache, DynamicData.IObservableCache, System.IDisposable + where TObject : notnull + where TKey : notnull + { + void Edit(System.Action> updateAction); + } + public interface IKeyValueCollection : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + { + System.Collections.Generic.IComparer> Comparer { get; } + int Count { get; } + System.Collections.Generic.KeyValuePair this[int index] { get; } + DynamicData.SortOptimisations Optimisations { get; } + DynamicData.SortReason SortReason { get; } + } + public interface IKeyValue : DynamicData.IKey + { + TObject Value { get; } + } + public interface IKey + { + T Key { get; } + } + public interface IObservableCache : DynamicData.IConnectableCache, System.IDisposable + where TObject : notnull + where TKey : notnull + { + int Count { get; } + System.Collections.Generic.IEnumerable Items { get; } + System.Collections.Generic.IEnumerable> KeyValues { get; } + System.Collections.Generic.IEnumerable Keys { get; } + DynamicData.Kernel.Optional Lookup(TKey key); + } + public interface IObservableList : System.IDisposable + where T : notnull + { + int Count { get; } + System.IObservable CountChanged { get; } + System.Collections.Generic.IEnumerable Items { get; } + System.IObservable> Connect(System.Func? predicate = null); + System.IObservable> Preview(System.Func? predicate = null); + } + public interface IPageChangeSet : DynamicData.IChangeSet, DynamicData.IChangeSet, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + where T : notnull + { + DynamicData.Operators.IPageResponse Response { get; } + } + public interface IPageRequest + { + int Page { get; } + int Size { get; } + } + public interface IPagedChangeSet : DynamicData.IChangeSet, DynamicData.IChangeSet, DynamicData.ISortedChangeSet, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + where TObject : notnull + where TKey : notnull + { + DynamicData.Operators.IPageResponse Response { get; } + } + public interface IQuery + where TObject : notnull + { + int Count { get; } + System.Collections.Generic.IEnumerable Items { get; } + System.Collections.Generic.IEnumerable> KeyValues { get; } + System.Collections.Generic.IEnumerable Keys { get; } + DynamicData.Kernel.Optional Lookup(TKey key); + } + public interface ISortedChangeSetAdaptor + where TObject : notnull + where TKey : notnull + { + void Adapt(DynamicData.ISortedChangeSet change); + } + public interface ISortedChangeSet : DynamicData.IChangeSet, DynamicData.IChangeSet, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + where TObject : notnull + where TKey : notnull + { + DynamicData.IKeyValueCollection SortedItems { get; } + } + public interface ISourceCache : DynamicData.IConnectableCache, DynamicData.IObservableCache, System.IDisposable + where TObject : notnull + where TKey : notnull + { + System.Func KeySelector { get; } + void Edit(System.Action> updateAction); + } + public interface ISourceList : DynamicData.IObservableList, System.IDisposable + where T : notnull + { + void Edit(System.Action> updateAction); + } + public interface ISourceUpdater : DynamicData.ICacheUpdater, DynamicData.IQuery + where TObject : notnull + where TKey : notnull + { + void AddOrUpdate(System.Collections.Generic.IEnumerable items); + void AddOrUpdate(TObject item); + void AddOrUpdate(System.Collections.Generic.IEnumerable items, System.Collections.Generic.IEqualityComparer comparer); + void AddOrUpdate(TObject item, System.Collections.Generic.IEqualityComparer comparer); + [System.Obsolete("Use Refresh: Same thing but better semantics")] + void Evaluate(System.Collections.Generic.IEnumerable items); + [System.Obsolete("Use Refresh: Same thing but better semantics")] + void Evaluate(TObject item); + void Load(System.Collections.Generic.IEnumerable items); + void Refresh(System.Collections.Generic.IEnumerable items); + void Refresh(TObject item); + void Remove(System.Collections.Generic.IEnumerable items); + void Remove(TObject item); + } + public interface IVirtualChangeSet : DynamicData.IChangeSet, DynamicData.IChangeSet, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + where T : notnull + { + DynamicData.IVirtualResponse Response { get; } + } + public interface IVirtualChangeSet : DynamicData.IChangeSet, DynamicData.IChangeSet, DynamicData.ISortedChangeSet, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + where TObject : notnull + where TKey : notnull + { + DynamicData.IVirtualResponse Response { get; } + } + public interface IVirtualRequest + { + int Size { get; } + int StartIndex { get; } + } + public interface IVirtualResponse + { + int Size { get; } + int StartIndex { get; } + int TotalSize { get; } + } + public sealed class IndexedItem : System.IEquatable> + { + public IndexedItem(TObject value, TKey key, int index) { } + public int Index { get; } + public TKey Key { get; } + public TObject Value { get; } + public bool Equals(DynamicData.IndexedItem? other) { } + public override bool Equals(object? obj) { } + public override int GetHashCode() { } + public override string ToString() { } + } + [System.Diagnostics.DebuggerDisplay("IntermediateCache<{typeof(TObject).Name}, {typeof(TKey).Name}> ({Count} Items)")] + public sealed class IntermediateCache : DynamicData.IConnectableCache, DynamicData.IIntermediateCache, DynamicData.IObservableCache, System.IDisposable + where TObject : notnull + where TKey : notnull + { + public IntermediateCache() { } + public IntermediateCache(System.IObservable> source) { } + public int Count { get; } + public System.IObservable CountChanged { get; } + public System.Collections.Generic.IEnumerable Items { get; } + public System.Collections.Generic.IEnumerable> KeyValues { get; } + public System.Collections.Generic.IEnumerable Keys { get; } + public System.IObservable> Connect(System.Func? predicate = null, bool suppressEmptyChangeSets = true) { } + public void Dispose() { } + public void Edit(System.Action> updateAction) { } + public DynamicData.Kernel.Optional Lookup(TKey key) { } + public System.IObservable> Preview(System.Func? predicate = null) { } + public System.IObservable> Watch(TKey key) { } + } + public readonly struct ItemChange : System.IEquatable> + where T : notnull + { + public static readonly DynamicData.ItemChange Empty; + public ItemChange(DynamicData.ListChangeReason reason, T current, int currentIndex) { } + public ItemChange(DynamicData.ListChangeReason reason, T current, DynamicData.Kernel.Optional previous, int currentIndex = -1, int previousIndex = -1) { } + public T Current { get; } + public int CurrentIndex { get; } + public DynamicData.Kernel.Optional Previous { get; } + public int PreviousIndex { get; } + public DynamicData.ListChangeReason Reason { get; } + public bool Equals(DynamicData.ItemChange other) { } + public override bool Equals(object? obj) { } + public override int GetHashCode() { } + public override string ToString() { } + public static bool operator !=(DynamicData.ItemChange left, DynamicData.ItemChange right) { } + public static bool operator ==(DynamicData.ItemChange left, DynamicData.ItemChange right) { } + } + public enum ListChangeReason + { + Add = 0, + AddRange = 1, + Replace = 2, + Remove = 3, + RemoveRange = 4, + Refresh = 5, + Moved = 6, + Clear = 7, + } + public static class ListEx + { + public static void Add(this System.Collections.Generic.IList source, System.Collections.Generic.IEnumerable items) { } + public static void AddOrInsertRange(this System.Collections.Generic.IList source, System.Collections.Generic.IEnumerable items, int index) { } + public static void AddRange(this System.Collections.Generic.IList source, System.Collections.Generic.IEnumerable items) { } + public static void AddRange(this System.Collections.Generic.IList source, System.Collections.Generic.IEnumerable items, int index) { } + public static int BinarySearch(this System.Collections.Generic.IList list, TItem value) { } + public static int BinarySearch(this System.Collections.Generic.IList list, TItem value, System.Collections.Generic.IComparer comparer) { } + public static int BinarySearch(this System.Collections.Generic.IList list, TSearch value, System.Func comparer) { } + public static void Clone(this System.Collections.Generic.IList source, DynamicData.IChangeSet changes) + where T : notnull { } + public static void Clone(this System.Collections.Generic.IList source, DynamicData.IChangeSet changes, System.Collections.Generic.IEqualityComparer? equalityComparer) + where T : notnull { } + public static void Clone(this System.Collections.Generic.IList source, System.Collections.Generic.IEnumerable> changes, System.Collections.Generic.IEqualityComparer? equalityComparer) + where T : notnull { } + public static int IndexOf(this System.Collections.Generic.IEnumerable source, T item) { } + public static int IndexOf(this System.Collections.Generic.IEnumerable source, T item, System.Collections.Generic.IEqualityComparer equalityComparer) { } + public static DynamicData.Kernel.Optional> IndexOfOptional(this System.Collections.Generic.IEnumerable source, T item, System.Collections.Generic.IEqualityComparer? equalityComparer = null) { } + public static void Remove(this System.Collections.Generic.IList source, System.Collections.Generic.IEnumerable items) { } + public static void RemoveMany(this System.Collections.Generic.IList source, System.Collections.Generic.IEnumerable itemsToRemove) { } + public static void Replace(this System.Collections.Generic.IList source, T original, T replaceWith) { } + public static void Replace(this System.Collections.Generic.IList source, T original, T replaceWith, System.Collections.Generic.IEqualityComparer comparer) { } + public static void ReplaceOrAdd(this System.Collections.Generic.IList source, T original, T replaceWith) { } + } + public enum ListFilterPolicy + { + ClearAndReplace = 0, + CalculateDiff = 1, + } + [System.Serializable] + public class MissingKeyException : System.Exception + { + public MissingKeyException() { } + public MissingKeyException(string message) { } + protected MissingKeyException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) { } + public MissingKeyException(string message, System.Exception innerException) { } + } + public class Node : System.IDisposable, System.IEquatable> + where TObject : class + where TKey : notnull + { + public Node(TObject item, TKey key) { } + public Node(TObject item, TKey key, DynamicData.Kernel.Optional> parent) { } + public DynamicData.IObservableCache, TKey> Children { get; } + public int Depth { get; } + public bool IsRoot { get; } + public TObject Item { get; } + public TKey Key { get; } + public DynamicData.Kernel.Optional> Parent { get; } + public void Dispose() { } + protected virtual void Dispose(bool isDisposing) { } + public bool Equals(DynamicData.Node? other) { } + public override bool Equals(object? obj) { } + public override int GetHashCode() { } + public override string ToString() { } + public static bool operator !=(DynamicData.Node left, DynamicData.Node right) { } + public static bool operator ==(DynamicData.Node? left, DynamicData.Node? right) { } + } + public static class ObservableCacheEx + { + public static System.IObservable> Adapt(this System.IObservable> source, DynamicData.IChangeSetAdaptor adaptor) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Adapt(this System.IObservable> source, DynamicData.ISortedChangeSetAdaptor adaptor) + where TObject : notnull + where TKey : notnull { } + public static void AddOrUpdate(this DynamicData.ISourceCache source, System.Collections.Generic.IEnumerable items) + where TObject : notnull + where TKey : notnull { } + public static void AddOrUpdate(this DynamicData.ISourceCache source, TObject item) + where TObject : notnull + where TKey : notnull { } + public static void AddOrUpdate(this DynamicData.IIntermediateCache source, TObject item, TKey key) + where TObject : notnull + where TKey : notnull { } + public static void AddOrUpdate(this DynamicData.ISourceCache source, System.Collections.Generic.IEnumerable items, System.Collections.Generic.IEqualityComparer equalityComparer) + where TObject : notnull + where TKey : notnull { } + public static void AddOrUpdate(this DynamicData.ISourceCache source, TObject item, System.Collections.Generic.IEqualityComparer equalityComparer) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> And(this DynamicData.IObservableList> sources) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> And(this DynamicData.IObservableList> sources) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> And(this DynamicData.IObservableList>> sources) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> And(this System.Collections.Generic.ICollection>> sources) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> And(this System.IObservable> source, params System.IObservable>[] others) + where TObject : notnull + where TKey : notnull { } + public static DynamicData.IObservableCache AsObservableCache(this DynamicData.IObservableCache source) + where TObject : notnull + where TKey : notnull { } + public static DynamicData.IObservableCache AsObservableCache(this System.IObservable> source, bool applyLocking = true) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> AutoRefresh(this System.IObservable> source, System.TimeSpan? changeSetBuffer = default, System.TimeSpan? propertyChangeThrottle = default, System.Reactive.Concurrency.IScheduler? scheduler = null) + where TObject : System.ComponentModel.INotifyPropertyChanged + where TKey : notnull { } + public static System.IObservable> AutoRefresh(this System.IObservable> source, System.Linq.Expressions.Expression> propertyAccessor, System.TimeSpan? changeSetBuffer = default, System.TimeSpan? propertyChangeThrottle = default, System.Reactive.Concurrency.IScheduler? scheduler = null) + where TObject : System.ComponentModel.INotifyPropertyChanged + where TKey : notnull { } + public static System.IObservable> AutoRefreshOnObservable(this System.IObservable> source, System.Func> reevaluator, System.TimeSpan? changeSetBuffer = default, System.Reactive.Concurrency.IScheduler? scheduler = null) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> AutoRefreshOnObservable(this System.IObservable> source, System.Func> reevaluator, System.TimeSpan? changeSetBuffer = default, System.Reactive.Concurrency.IScheduler? scheduler = null) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Batch(this System.IObservable> source, System.TimeSpan timeSpan, System.Reactive.Concurrency.IScheduler? scheduler = null) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> BatchIf(this System.IObservable> source, System.IObservable pauseIfTrueSelector, System.Reactive.Concurrency.IScheduler? scheduler = null) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> BatchIf(this System.IObservable> source, System.IObservable pauseIfTrueSelector, bool initialPauseState = false, System.Reactive.Concurrency.IScheduler? scheduler = null) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> BatchIf(this System.IObservable> source, System.IObservable pauseIfTrueSelector, System.TimeSpan? timeOut = default, System.Reactive.Concurrency.IScheduler? scheduler = null) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> BatchIf(this System.IObservable> source, System.IObservable pauseIfTrueSelector, bool initialPauseState = false, System.IObservable? timer = null, System.Reactive.Concurrency.IScheduler? scheduler = null) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> BatchIf(this System.IObservable> source, System.IObservable pauseIfTrueSelector, bool initialPauseState = false, System.TimeSpan? timeOut = default, System.Reactive.Concurrency.IScheduler? scheduler = null) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Bind(this System.IObservable> source, DynamicData.Binding.IObservableCollection destination) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Bind(this System.IObservable> source, DynamicData.Binding.IObservableCollection destination, DynamicData.Binding.IObservableCollectionAdaptor updater) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Bind(this System.IObservable> source, DynamicData.Binding.IObservableCollection destination, int refreshThreshold = 25) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Bind(this System.IObservable> source, System.ComponentModel.BindingList bindingList, int resetThreshold = 25) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Bind(this System.IObservable> source, DynamicData.Binding.IObservableCollection destination, DynamicData.Binding.ISortedObservableCollectionAdaptor updater) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Bind(this System.IObservable> source, System.ComponentModel.BindingList bindingList, int resetThreshold = 25) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Bind(this System.IObservable> source, out System.Collections.ObjectModel.ReadOnlyObservableCollection readOnlyObservableCollection, int resetThreshold = 25, bool useReplaceForUpdates = false, DynamicData.Binding.IObservableCollectionAdaptor? adaptor = null) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Bind(this System.IObservable> source, out System.Collections.ObjectModel.ReadOnlyObservableCollection readOnlyObservableCollection, int resetThreshold = 25, bool useReplaceForUpdates = true, DynamicData.Binding.ISortedObservableCollectionAdaptor? adaptor = null) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> BufferInitial(this System.IObservable> source, System.TimeSpan initialBuffer, System.Reactive.Concurrency.IScheduler? scheduler = null) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Cast(this System.IObservable> source, System.Func converter) + where TSource : notnull + where TKey : notnull + where TDestination : notnull { } + public static System.IObservable> ChangeKey(this System.IObservable> source, System.Func keySelector) + where TObject : notnull + where TSourceKey : notnull + where TDestinationKey : notnull { } + public static System.IObservable> ChangeKey(this System.IObservable> source, System.Func keySelector) + where TObject : notnull + where TSourceKey : notnull + where TDestinationKey : notnull { } + public static void Clear(this DynamicData.Cache.Internal.LockFreeObservableCache source) + where TObject : notnull + where TKey : notnull { } + public static void Clear(this DynamicData.IIntermediateCache source) + where TObject : notnull + where TKey : notnull { } + public static void Clear(this DynamicData.ISourceCache source) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Clone(this System.IObservable> source, System.Collections.Generic.ICollection target) + where TObject : notnull + where TKey : notnull { } + [System.Obsolete("This was an experiment that did not work. Use Transform instead")] + public static System.IObservable> Convert(this System.IObservable> source, System.Func conversionFactory) + where TObject : notnull + where TKey : notnull + where TDestination : notnull { } + public static System.IObservable> DeferUntilLoaded(this DynamicData.IObservableCache source) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> DeferUntilLoaded(this System.IObservable> source) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> DisposeMany(this System.IObservable> source) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> DistinctValues(this System.IObservable> source, System.Func valueSelector) + where TObject : notnull + where TKey : notnull + where TValue : notnull { } + public static void EditDiff(this DynamicData.ISourceCache source, System.Collections.Generic.IEnumerable allItems, System.Collections.Generic.IEqualityComparer equalityComparer) + where TObject : notnull + where TKey : notnull { } + public static void EditDiff(this DynamicData.ISourceCache source, System.Collections.Generic.IEnumerable allItems, System.Func areItemsEqual) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> EditDiff(this System.IObservable> source, System.Func keySelector, System.Collections.Generic.IEqualityComparer? equalityComparer = null) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> EditDiff(this System.IObservable> source, System.Func keySelector, System.Collections.Generic.IEqualityComparer? equalityComparer = null) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> EnsureUniqueKeys(this System.IObservable> source) + where TObject : notnull + where TKey : notnull { } + [System.Obsolete("Use Refresh: Same thing but better semantics")] + public static void Evaluate(this DynamicData.ISourceCache source) + where TObject : notnull + where TKey : notnull { } + [System.Obsolete("Use Refresh: Same thing but better semantics")] + public static void Evaluate(this DynamicData.ISourceCache source, System.Collections.Generic.IEnumerable items) + where TObject : notnull + where TKey : notnull { } + [System.Obsolete("Use Refresh: Same thing but better semantics")] + public static void Evaluate(this DynamicData.ISourceCache source, TObject item) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Except(this DynamicData.IObservableList> sources) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Except(this DynamicData.IObservableList> sources) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Except(this DynamicData.IObservableList>> sources) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Except(this System.Collections.Generic.ICollection>> sources) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Except(this System.IObservable> source, params System.IObservable>[] others) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> ExpireAfter(this System.IObservable> source, System.Func timeSelector) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable>> ExpireAfter(this DynamicData.ISourceCache source, System.Func timeSelector, System.Reactive.Concurrency.IScheduler? scheduler = null) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable>> ExpireAfter(this DynamicData.ISourceCache source, System.Func timeSelector, System.TimeSpan? interval = default) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> ExpireAfter(this System.IObservable> source, System.Func timeSelector, System.Reactive.Concurrency.IScheduler scheduler) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> ExpireAfter(this System.IObservable> source, System.Func timeSelector, System.TimeSpan? pollingInterval) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable>> ExpireAfter(this DynamicData.ISourceCache source, System.Func timeSelector, System.TimeSpan? pollingInterval, System.Reactive.Concurrency.IScheduler? scheduler) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> ExpireAfter(this System.IObservable> source, System.Func timeSelector, System.TimeSpan? pollingInterval, System.Reactive.Concurrency.IScheduler scheduler) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Filter(this System.IObservable> source, System.Func filter, bool suppressEmptyChangeSets = true) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Filter(this System.IObservable> source, System.IObservable> predicateChanged, bool suppressEmptyChangeSets = true) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Filter(this System.IObservable> source, System.IObservable reapplyFilter, bool suppressEmptyChangeSets = true) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Filter(this System.IObservable> source, System.IObservable> predicateChanged, System.IObservable reapplyFilter, bool suppressEmptyChangeSets = true) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> FilterOnObservable(this System.IObservable> source, System.Func> filterFactory, System.TimeSpan? buffer = default, System.Reactive.Concurrency.IScheduler? scheduler = null) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> FilterOnObservable(this System.IObservable> source, System.Func> filterFactory, System.TimeSpan? buffer = default, System.Reactive.Concurrency.IScheduler? scheduler = null) + where TObject : notnull + where TKey : notnull { } + [System.Obsolete("Use AutoRefresh(), followed by Filter() instead")] + public static System.IObservable> FilterOnProperty(this System.IObservable> source, System.Linq.Expressions.Expression> propertySelector, System.Func predicate, System.TimeSpan? propertyChangedThrottle = default, System.Reactive.Concurrency.IScheduler? scheduler = null) + where TObject : System.ComponentModel.INotifyPropertyChanged + where TKey : notnull { } + [System.Obsolete("This can cause unhandled exception issues so do not use")] + public static System.IObservable FinallySafe(this System.IObservable source, System.Action finallyAction) { } + public static System.IObservable> Flatten(this System.IObservable> source) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> FlattenBufferResult(this System.IObservable>> source) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> ForEachChange(this System.IObservable> source, System.Action> action) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> FullJoin(this System.IObservable> left, System.IObservable> right, System.Func rightKeySelector, System.Func, DynamicData.Kernel.Optional, TDestination> resultSelector) + where TLeft : notnull + where TLeftKey : notnull + where TRight : notnull + where TRightKey : notnull + where TDestination : notnull { } + public static System.IObservable> FullJoin(this System.IObservable> left, System.IObservable> right, System.Func rightKeySelector, System.Func, DynamicData.Kernel.Optional, TDestination> resultSelector) + where TLeft : notnull + where TLeftKey : notnull + where TRight : notnull + where TRightKey : notnull + where TDestination : notnull { } + public static System.IObservable> FullJoinMany(this System.IObservable> left, System.IObservable> right, System.Func rightKeySelector, System.Func, DynamicData.IGrouping, TDestination> resultSelector) + where TLeft : notnull + where TLeftKey : notnull + where TRight : notnull + where TRightKey : notnull + where TDestination : notnull { } + public static System.IObservable> FullJoinMany(this System.IObservable> left, System.IObservable> right, System.Func rightKeySelector, System.Func, DynamicData.IGrouping, TDestination> resultSelector) + where TLeft : notnull + where TLeftKey : notnull + where TRight : notnull + where TRightKey : notnull + where TDestination : notnull { } + public static System.IObservable> Group(this System.IObservable> source, System.Func groupSelectorKey) + where TObject : notnull + where TKey : notnull + where TGroupKey : notnull { } + public static System.IObservable> Group(this System.IObservable> source, System.Func groupSelector, System.IObservable> resultGroupSource) + where TObject : notnull + where TKey : notnull + where TGroupKey : notnull { } + public static System.IObservable> Group(this System.IObservable> source, System.Func groupSelectorKey, System.IObservable regrouper) + where TObject : notnull + where TKey : notnull + where TGroupKey : notnull { } + public static System.IObservable> GroupOnProperty(this System.IObservable> source, System.Linq.Expressions.Expression> propertySelector, System.TimeSpan? propertyChangedThrottle = default, System.Reactive.Concurrency.IScheduler? scheduler = null) + where TObject : System.ComponentModel.INotifyPropertyChanged + where TKey : notnull + where TGroupKey : notnull { } + public static System.IObservable> GroupOnPropertyWithImmutableState(this System.IObservable> source, System.Linq.Expressions.Expression> propertySelector, System.TimeSpan? propertyChangedThrottle = default, System.Reactive.Concurrency.IScheduler? scheduler = null) + where TObject : System.ComponentModel.INotifyPropertyChanged + where TKey : notnull + where TGroupKey : notnull { } + public static System.IObservable> GroupWithImmutableState(this System.IObservable> source, System.Func groupSelectorKey, System.IObservable? regrouper = null) + where TObject : notnull + where TKey : notnull + where TGroupKey : notnull { } + public static System.IObservable> IgnoreSameReferenceUpdate(this System.IObservable> source) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> IgnoreUpdateWhen(this System.IObservable> source, System.Func ignoreFunction) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> IncludeUpdateWhen(this System.IObservable> source, System.Func includeFunction) + where TObject : notnull + where TKey : notnull { } + [return: System.Runtime.CompilerServices.TupleElementNames(new string[] { + "leftKey", + "rightKey"})] + public static System.IObservable>> InnerJoin(this System.IObservable> left, System.IObservable> right, System.Func rightKeySelector, System.Func resultSelector) + where TLeft : notnull + where TLeftKey : notnull + where TRight : notnull + where TRightKey : notnull + where TDestination : notnull { } + [return: System.Runtime.CompilerServices.TupleElementNames(new string[] { + "leftKey", + "rightKey"})] + public static System.IObservable>> InnerJoin(this System.IObservable> left, System.IObservable> right, System.Func rightKeySelector, [System.Runtime.CompilerServices.TupleElementNames(new string[] { + "leftKey", + "rightKey"})] System.Func, TLeft, TRight, TDestination> resultSelector) + where TLeft : notnull + where TLeftKey : notnull + where TRight : notnull + where TRightKey : notnull + where TDestination : notnull { } + public static System.IObservable> InnerJoinMany(this System.IObservable> left, System.IObservable> right, System.Func rightKeySelector, System.Func, TDestination> resultSelector) + where TLeft : notnull + where TLeftKey : notnull + where TRight : notnull + where TRightKey : notnull + where TDestination : notnull { } + public static System.IObservable> InnerJoinMany(this System.IObservable> left, System.IObservable> right, System.Func rightKeySelector, System.Func, TDestination> resultSelector) + where TLeft : notnull + where TLeftKey : notnull + where TRight : notnull + where TRightKey : notnull + where TDestination : notnull { } + public static System.IObservable> InvokeEvaluate(this System.IObservable> source) + where TObject : DynamicData.Binding.IEvaluateAware + where TKey : notnull { } + public static System.IObservable> LeftJoin(this System.IObservable> left, System.IObservable> right, System.Func rightKeySelector, System.Func, TDestination> resultSelector) + where TLeft : notnull + where TLeftKey : notnull + where TRight : notnull + where TRightKey : notnull + where TDestination : notnull { } + public static System.IObservable> LeftJoin(this System.IObservable> left, System.IObservable> right, System.Func rightKeySelector, System.Func, TDestination> resultSelector) + where TLeft : notnull + where TLeftKey : notnull + where TRight : notnull + where TRightKey : notnull + where TDestination : notnull { } + public static System.IObservable> LeftJoinMany(this System.IObservable> left, System.IObservable> right, System.Func rightKeySelector, System.Func, TDestination> resultSelector) + where TLeft : notnull + where TLeftKey : notnull + where TRight : notnull + where TRightKey : notnull + where TDestination : notnull { } + public static System.IObservable> LeftJoinMany(this System.IObservable> left, System.IObservable> right, System.Func rightKeySelector, System.Func, TDestination> resultSelector) + where TLeft : notnull + where TLeftKey : notnull + where TRight : notnull + where TRightKey : notnull + where TDestination : notnull { } + public static System.IObservable> LimitSizeTo(this System.IObservable> source, int size) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable>> LimitSizeTo(this DynamicData.ISourceCache source, int sizeLimit, System.Reactive.Concurrency.IScheduler? scheduler = null) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> MergeChangeSets(this System.IObservable>> source) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> MergeChangeSets(this System.IObservable>> source, System.Collections.Generic.IComparer comparer) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> MergeChangeSets(this System.IObservable>> source, System.Collections.Generic.IEqualityComparer equalityComparer) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> MergeChangeSets(this System.Collections.Generic.IEnumerable>> source, System.Reactive.Concurrency.IScheduler? scheduler = null, bool completable = true) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> MergeChangeSets(this System.IObservable>> source, System.Collections.Generic.IEqualityComparer equalityComparer, System.Collections.Generic.IComparer comparer) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> MergeChangeSets(this System.Collections.Generic.IEnumerable>> source, System.Collections.Generic.IComparer comparer, System.Reactive.Concurrency.IScheduler? scheduler = null, bool completable = true) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> MergeChangeSets(this System.Collections.Generic.IEnumerable>> source, System.Collections.Generic.IEqualityComparer equalityComparer, System.Reactive.Concurrency.IScheduler? scheduler = null, bool completable = true) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> MergeChangeSets(this System.IObservable> source, System.Collections.Generic.IEnumerable>> others, System.Reactive.Concurrency.IScheduler? scheduler = null, bool completable = true) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> MergeChangeSets(this System.IObservable> source, System.IObservable> other, System.Reactive.Concurrency.IScheduler? scheduler = null, bool completable = true) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> MergeChangeSets(this System.Collections.Generic.IEnumerable>> source, System.Collections.Generic.IEqualityComparer equalityComparer, System.Collections.Generic.IComparer comparer, System.Reactive.Concurrency.IScheduler? scheduler = null, bool completable = true) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> MergeChangeSets(this System.IObservable> source, System.Collections.Generic.IEnumerable>> others, System.Collections.Generic.IComparer comparer, System.Reactive.Concurrency.IScheduler? scheduler = null, bool completable = true) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> MergeChangeSets(this System.IObservable> source, System.Collections.Generic.IEnumerable>> others, System.Collections.Generic.IEqualityComparer equalityComparer, System.Reactive.Concurrency.IScheduler? scheduler = null, bool completable = true) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> MergeChangeSets(this System.IObservable> source, System.IObservable> other, System.Collections.Generic.IComparer comparer, System.Reactive.Concurrency.IScheduler? scheduler = null, bool completable = true) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> MergeChangeSets(this System.IObservable> source, System.IObservable> other, System.Collections.Generic.IEqualityComparer equalityComparer, System.Reactive.Concurrency.IScheduler? scheduler = null, bool completable = true) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> MergeChangeSets(this System.IObservable> source, System.Collections.Generic.IEnumerable>> others, System.Collections.Generic.IEqualityComparer equalityComparer, System.Collections.Generic.IComparer comparer, System.Reactive.Concurrency.IScheduler? scheduler = null, bool completable = true) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> MergeChangeSets(this System.IObservable> source, System.IObservable> other, System.Collections.Generic.IEqualityComparer equalityComparer, System.Collections.Generic.IComparer comparer, System.Reactive.Concurrency.IScheduler? scheduler = null, bool completable = true) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable MergeMany(this System.IObservable> source, System.Func> observableSelector) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable MergeMany(this System.IObservable> source, System.Func> observableSelector) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> MergeManyChangeSets(this System.IObservable> source, System.Func>> observableSelector, System.Collections.Generic.IComparer comparer) + where TObject : notnull + where TKey : notnull + where TDestination : notnull + where TDestinationKey : notnull { } + public static System.IObservable> MergeManyChangeSets(this System.IObservable> source, System.Func>> observableSelector, System.Collections.Generic.IComparer comparer) + where TObject : notnull + where TKey : notnull + where TDestination : notnull + where TDestinationKey : notnull { } + public static System.IObservable> MergeManyChangeSets(this System.IObservable> source, System.Func>> observableSelector, System.Collections.Generic.IComparer sourceComparer, System.Collections.Generic.IComparer childComparer) + where TObject : notnull + where TKey : notnull + where TDestination : notnull + where TDestinationKey : notnull { } + public static System.IObservable> MergeManyChangeSets(this System.IObservable> source, System.Func>> observableSelector, System.Collections.Generic.IEqualityComparer? equalityComparer = null, System.Collections.Generic.IComparer? comparer = null) + where TObject : notnull + where TKey : notnull + where TDestination : notnull + where TDestinationKey : notnull { } + public static System.IObservable> MergeManyChangeSets(this System.IObservable> source, System.Func>> observableSelector, System.Collections.Generic.IComparer sourceComparer, System.Collections.Generic.IComparer childComparer) + where TObject : notnull + where TKey : notnull + where TDestination : notnull + where TDestinationKey : notnull { } + public static System.IObservable> MergeManyChangeSets(this System.IObservable> source, System.Func>> observableSelector, System.Collections.Generic.IEqualityComparer? equalityComparer = null, System.Collections.Generic.IComparer? comparer = null) + where TObject : notnull + where TKey : notnull + where TDestination : notnull + where TDestinationKey : notnull { } + public static System.IObservable> MergeManyChangeSets(this System.IObservable> source, System.Func>> observableSelector, System.Collections.Generic.IComparer sourceComparer, bool resortOnSourceRefresh, System.Collections.Generic.IComparer childComparer) + where TObject : notnull + where TKey : notnull + where TDestination : notnull + where TDestinationKey : notnull { } + public static System.IObservable> MergeManyChangeSets(this System.IObservable> source, System.Func>> observableSelector, System.Collections.Generic.IComparer sourceComparer, System.Collections.Generic.IEqualityComparer? equalityComparer = null, System.Collections.Generic.IComparer? childComparer = null) + where TObject : notnull + where TKey : notnull + where TDestination : notnull + where TDestinationKey : notnull { } + public static System.IObservable> MergeManyChangeSets(this System.IObservable> source, System.Func>> observableSelector, System.Collections.Generic.IComparer sourceComparer, bool resortOnSourceRefresh, System.Collections.Generic.IComparer childComparer) + where TObject : notnull + where TKey : notnull + where TDestination : notnull + where TDestinationKey : notnull { } + public static System.IObservable> MergeManyChangeSets(this System.IObservable> source, System.Func>> observableSelector, System.Collections.Generic.IComparer sourceComparer, System.Collections.Generic.IEqualityComparer? equalityComparer = null, System.Collections.Generic.IComparer? childComparer = null) + where TObject : notnull + where TKey : notnull + where TDestination : notnull + where TDestinationKey : notnull { } + public static System.IObservable> MergeManyChangeSets(this System.IObservable> source, System.Func>> observableSelector, System.Collections.Generic.IComparer sourceComparer, bool resortOnSourceRefresh, System.Collections.Generic.IEqualityComparer? equalityComparer = null, System.Collections.Generic.IComparer? childComparer = null) + where TObject : notnull + where TKey : notnull + where TDestination : notnull + where TDestinationKey : notnull { } + public static System.IObservable> MergeManyChangeSets(this System.IObservable> source, System.Func>> observableSelector, System.Collections.Generic.IComparer sourceComparer, bool resortOnSourceRefresh, System.Collections.Generic.IEqualityComparer? equalityComparer = null, System.Collections.Generic.IComparer? childComparer = null) + where TObject : notnull + where TKey : notnull + where TDestination : notnull + where TDestinationKey : notnull { } + public static System.IObservable> MergeManyItems(this System.IObservable> source, System.Func> observableSelector) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> MergeManyItems(this System.IObservable> source, System.Func> observableSelector) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable MonitorStatus(this System.IObservable source) { } + public static System.IObservable> NotEmpty(this System.IObservable> source) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> OnItemAdded(this System.IObservable> source, System.Action addAction) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> OnItemRefreshed(this System.IObservable> source, System.Action refreshAction) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> OnItemRemoved(this System.IObservable> source, System.Action removeAction, bool invokeOnUnsubscribe = true) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> OnItemUpdated(this System.IObservable> source, System.Action updateAction) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Or(this DynamicData.IObservableList> sources) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Or(this DynamicData.IObservableList> sources) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Or(this DynamicData.IObservableList>> sources) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Or(this System.Collections.Generic.ICollection>> sources) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Or(this System.IObservable> source, params System.IObservable>[] others) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Page(this System.IObservable> source, System.IObservable pageRequests) + where TObject : notnull + where TKey : notnull { } + public static System.IDisposable PopulateFrom(this DynamicData.ISourceCache source, System.IObservable> observable) + where TObject : notnull + where TKey : notnull { } + public static System.IDisposable PopulateFrom(this DynamicData.ISourceCache source, System.IObservable observable) + where TObject : notnull + where TKey : notnull { } + public static System.IDisposable PopulateInto(this System.IObservable> source, DynamicData.Cache.Internal.LockFreeObservableCache destination) + where TObject : notnull + where TKey : notnull { } + public static System.IDisposable PopulateInto(this System.IObservable> source, DynamicData.IIntermediateCache destination) + where TObject : notnull + where TKey : notnull { } + public static System.IDisposable PopulateInto(this System.IObservable> source, DynamicData.ISourceCache destination) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> QueryWhenChanged(this System.IObservable> source) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable QueryWhenChanged(this System.IObservable> source, System.Func, TDestination> resultSelector) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> QueryWhenChanged(this System.IObservable> source, System.Func> itemChangedTrigger) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> RefCount(this System.IObservable> source) + where TObject : notnull + where TKey : notnull { } + public static void Refresh(this DynamicData.ISourceCache source) + where TObject : notnull + where TKey : notnull { } + public static void Refresh(this DynamicData.ISourceCache source, System.Collections.Generic.IEnumerable items) + where TObject : notnull + where TKey : notnull { } + public static void Refresh(this DynamicData.ISourceCache source, TObject item) + where TObject : notnull + where TKey : notnull { } + public static void Remove(this DynamicData.IIntermediateCache source, System.Collections.Generic.IEnumerable keys) + where TObject : notnull + where TKey : notnull { } + public static void Remove(this DynamicData.IIntermediateCache source, TKey key) + where TObject : notnull + where TKey : notnull { } + public static void Remove(this DynamicData.ISourceCache source, System.Collections.Generic.IEnumerable keys) + where TObject : notnull + where TKey : notnull { } + public static void Remove(this DynamicData.ISourceCache source, System.Collections.Generic.IEnumerable items) + where TObject : notnull + where TKey : notnull { } + public static void Remove(this DynamicData.ISourceCache source, TKey key) + where TObject : notnull + where TKey : notnull { } + public static void Remove(this DynamicData.ISourceCache source, TObject item) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> RemoveKey(this System.IObservable> source) + where TObject : notnull + where TKey : notnull { } + public static void RemoveKey(this DynamicData.ISourceCache source, TKey key) + where TObject : notnull + where TKey : notnull { } + public static void RemoveKeys(this DynamicData.ISourceCache source, System.Collections.Generic.IEnumerable keys) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> RightJoin(this System.IObservable> left, System.IObservable> right, System.Func rightKeySelector, System.Func, TRight, TDestination> resultSelector) + where TLeft : notnull + where TLeftKey : notnull + where TRight : notnull + where TRightKey : notnull + where TDestination : notnull { } + public static System.IObservable> RightJoin(this System.IObservable> left, System.IObservable> right, System.Func rightKeySelector, System.Func, TRight, TDestination> resultSelector) + where TLeft : notnull + where TLeftKey : notnull + where TRight : notnull + where TRightKey : notnull + where TDestination : notnull { } + public static System.IObservable> RightJoinMany(this System.IObservable> left, System.IObservable> right, System.Func rightKeySelector, System.Func, DynamicData.IGrouping, TDestination> resultSelector) + where TLeft : notnull + where TLeftKey : notnull + where TRight : notnull + where TRightKey : notnull + where TDestination : notnull { } + public static System.IObservable> RightJoinMany(this System.IObservable> left, System.IObservable> right, System.Func rightKeySelector, System.Func, DynamicData.IGrouping, TDestination> resultSelector) + where TLeft : notnull + where TLeftKey : notnull + where TRight : notnull + where TRightKey : notnull + where TDestination : notnull { } + public static System.IObservable> SkipInitial(this System.IObservable> source) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Sort(this System.IObservable> source, System.Collections.Generic.IComparer comparer, DynamicData.SortOptimisations sortOptimisations = 0, int resetThreshold = 100) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Sort(this System.IObservable> source, System.IObservable> comparerObservable, DynamicData.SortOptimisations sortOptimisations = 0, int resetThreshold = 100) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Sort(this System.IObservable> source, System.Collections.Generic.IComparer comparer, System.IObservable resorter, DynamicData.SortOptimisations sortOptimisations = 0, int resetThreshold = 100) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Sort(this System.IObservable> source, System.IObservable> comparerObservable, System.IObservable resorter, DynamicData.SortOptimisations sortOptimisations = 0, int resetThreshold = 100) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> SortBy(this System.IObservable> source, System.Func expression, DynamicData.Binding.SortDirection sortOrder = 0, DynamicData.SortOptimisations sortOptimisations = 0, int resetThreshold = 100) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> StartWithEmpty(this System.IObservable> source) { } + public static System.IObservable> StartWithEmpty(this System.IObservable> source) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> StartWithEmpty(this System.IObservable> source) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> StartWithEmpty(this System.IObservable> source) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> StartWithEmpty(this System.IObservable> source) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> StartWithEmpty(this System.IObservable> source) + where TObject : notnull + where TKey : notnull + where TGroupKey : notnull { } + public static System.IObservable> StartWithEmpty(this System.IObservable> source) + where TObject : notnull + where TKey : notnull + where TGroupKey : notnull { } + public static System.IObservable> StartWithItem(this System.IObservable> source, TObject item) + where TObject : DynamicData.IKey + where TKey : notnull { } + public static System.IObservable> StartWithItem(this System.IObservable> source, TObject item, TKey key) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> SubscribeMany(this System.IObservable> source, System.Func subscriptionFactory) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> SubscribeMany(this System.IObservable> source, System.Func subscriptionFactory) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> SuppressRefresh(this System.IObservable> source) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Switch(this System.IObservable> sources) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Switch(this System.IObservable>> sources) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> ToCollection(this System.IObservable> source) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> ToObservableChangeSet(this System.IObservable> source, System.Func keySelector, System.Func? expireAfter = null, int limitSizeTo = -1, System.Reactive.Concurrency.IScheduler? scheduler = null) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> ToObservableChangeSet(this System.IObservable source, System.Func keySelector, System.Func? expireAfter = null, int limitSizeTo = -1, System.Reactive.Concurrency.IScheduler? scheduler = null) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> ToObservableOptional(this System.IObservable> source, TKey key, System.Collections.Generic.IEqualityComparer? equalityComparer = null) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> ToObservableOptional(this System.IObservable> source, TKey key, bool initialOptionalWhenMissing, System.Collections.Generic.IEqualityComparer? equalityComparer = null) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> ToSortedCollection(this System.IObservable> source, System.Collections.Generic.IComparer comparer) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> ToSortedCollection(this System.IObservable> source, System.Func sort, DynamicData.Binding.SortDirection sortOrder = 0) + where TObject : notnull + where TKey : notnull + where TSortKey : notnull { } + public static System.IObservable> Top(this System.IObservable> source, int size) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Top(this System.IObservable> source, System.Collections.Generic.IComparer comparer, int size) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Transform(this System.IObservable> source, System.Func transformFactory, bool transformOnRefresh) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> Transform(this System.IObservable> source, System.Func transformFactory, System.IObservable forceTransform) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> Transform(this System.IObservable> source, System.Func transformFactory, System.IObservable>? forceTransform = null) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> Transform(this System.IObservable> source, System.Func transformFactory, bool transformOnRefresh) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> Transform(this System.IObservable> source, System.Func transformFactory, System.IObservable forceTransform) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> Transform(this System.IObservable> source, System.Func transformFactory, System.IObservable>? forceTransform = null) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> Transform(this System.IObservable> source, System.Func, TKey, TDestination> transformFactory, bool transformOnRefresh) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> Transform(this System.IObservable> source, System.Func, TKey, TDestination> transformFactory, System.IObservable forceTransform) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> Transform(this System.IObservable> source, System.Func, TKey, TDestination> transformFactory, System.IObservable>? forceTransform = null) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> TransformAsync(this System.IObservable> source, System.Func> transformFactory, System.IObservable>? forceTransform = null) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> TransformAsync(this System.IObservable> source, System.Func> transformFactory, System.IObservable>? forceTransform = null) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> TransformAsync(this System.IObservable> source, System.Func, TKey, System.Threading.Tasks.Task> transformFactory, System.IObservable>? forceTransform = null) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> TransformMany(this System.IObservable> source, System.Func> manySelector, System.Func keySelector) + where TDestination : notnull + where TDestinationKey : notnull + where TSource : notnull + where TSourceKey : notnull { } + public static System.IObservable> TransformMany(this System.IObservable> source, System.Func> manySelector, System.Func keySelector) + where TDestination : notnull + where TDestinationKey : notnull + where TSource : notnull + where TSourceKey : notnull { } + public static System.IObservable> TransformMany(this System.IObservable> source, System.Func> manySelector, System.Func keySelector) + where TDestination : notnull + where TDestinationKey : notnull + where TSource : notnull + where TSourceKey : notnull { } + public static System.IObservable> TransformMany(this System.IObservable> source, System.Func> manySelector, System.Func keySelector) + where TDestination : notnull + where TDestinationKey : notnull + where TSource : notnull + where TSourceKey : notnull { } + public static System.IObservable> TransformSafe(this System.IObservable> source, System.Func transformFactory, System.Action> errorHandler, System.IObservable forceTransform) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> TransformSafe(this System.IObservable> source, System.Func transformFactory, System.Action> errorHandler, System.IObservable>? forceTransform = null) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> TransformSafe(this System.IObservable> source, System.Func transformFactory, System.Action> errorHandler, System.IObservable forceTransform) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> TransformSafe(this System.IObservable> source, System.Func transformFactory, System.Action> errorHandler, System.IObservable>? forceTransform = null) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> TransformSafe(this System.IObservable> source, System.Func, TKey, TDestination> transformFactory, System.Action> errorHandler, System.IObservable forceTransform) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> TransformSafe(this System.IObservable> source, System.Func, TKey, TDestination> transformFactory, System.Action> errorHandler, System.IObservable>? forceTransform = null) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> TransformSafeAsync(this System.IObservable> source, System.Func> transformFactory, System.Action> errorHandler, System.IObservable>? forceTransform = null) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> TransformSafeAsync(this System.IObservable> source, System.Func> transformFactory, System.Action> errorHandler, System.IObservable>? forceTransform = null) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> TransformSafeAsync(this System.IObservable> source, System.Func, TKey, System.Threading.Tasks.Task> transformFactory, System.Action> errorHandler, System.IObservable>? forceTransform = null) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable, TKey>> TransformToTree(this System.IObservable> source, System.Func pivotOn, System.IObservable, bool>>? predicateChanged = null) + where TObject : class + where TKey : notnull { } + public static System.IObservable> TransformWithInlineUpdate(this System.IObservable> source, System.Func transformFactory, System.Action updateAction) + where TDestination : class + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> TransformWithInlineUpdate(this System.IObservable> source, System.Func transformFactory, System.Action updateAction, System.Action> errorHandler) + where TDestination : class + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> TreatMovesAsRemoveAdd(this System.IObservable> source) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable TrueForAll(this System.IObservable> source, System.Func> observableSelector, System.Func equalityCondition) + where TObject : notnull + where TKey : notnull + where TValue : notnull { } + public static System.IObservable TrueForAll(this System.IObservable> source, System.Func> observableSelector, System.Func equalityCondition) + where TObject : notnull + where TKey : notnull + where TValue : notnull { } + public static System.IObservable TrueForAny(this System.IObservable> source, System.Func> observableSelector, System.Func equalityCondition) + where TObject : notnull + where TKey : notnull + where TValue : notnull { } + public static System.IObservable TrueForAny(this System.IObservable> source, System.Func> observableSelector, System.Func equalityCondition) + where TObject : notnull + where TKey : notnull + where TValue : notnull { } + public static System.IObservable> UpdateIndex(this System.IObservable> source) + where TObject : DynamicData.Binding.IIndexAware + where TKey : notnull { } + public static System.IObservable> Virtualise(this System.IObservable> source, System.IObservable virtualRequests) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Watch(this System.IObservable> source, TKey key) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable WatchValue(this DynamicData.IObservableCache source, TKey key) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable WatchValue(this System.IObservable> source, TKey key) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable WhenAnyPropertyChanged(this System.IObservable> source, params string[] propertiesToMonitor) + where TObject : System.ComponentModel.INotifyPropertyChanged + where TKey : notnull { } + public static System.IObservable> WhenPropertyChanged(this System.IObservable> source, System.Linq.Expressions.Expression> propertyAccessor, bool notifyOnInitialValue = true) + where TObject : System.ComponentModel.INotifyPropertyChanged + where TKey : notnull { } + public static System.IObservable WhenValueChanged(this System.IObservable> source, System.Linq.Expressions.Expression> propertyAccessor, bool notifyOnInitialValue = true) + where TObject : System.ComponentModel.INotifyPropertyChanged + where TKey : notnull { } + public static System.IObservable> WhereReasonsAre(this System.IObservable> source, params DynamicData.ChangeReason[] reasons) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> WhereReasonsAreNot(this System.IObservable> source, params DynamicData.ChangeReason[] reasons) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Xor(this DynamicData.IObservableList> sources) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Xor(this DynamicData.IObservableList> sources) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Xor(this DynamicData.IObservableList>> sources) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Xor(this System.Collections.Generic.ICollection>> sources) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Xor(this System.IObservable> source, params System.IObservable>[] others) + where TObject : notnull + where TKey : notnull { } + } + public static class ObservableChangeSet + { + public static System.IObservable> Create(System.Func, System.Action> subscribe) + where T : notnull { } + public static System.IObservable> Create(System.Func, System.IDisposable> subscribe) + where T : notnull { } + public static System.IObservable> Create(System.Func, System.Threading.Tasks.Task> subscribe) + where T : notnull { } + public static System.IObservable> Create(System.Func, System.Threading.Tasks.Task> subscribe) + where T : notnull { } + public static System.IObservable> Create(System.Func, System.Threading.Tasks.Task> subscribe) + where T : notnull { } + public static System.IObservable> Create(System.Func, System.Threading.CancellationToken, System.Threading.Tasks.Task> subscribe) + where T : notnull { } + public static System.IObservable> Create(System.Func, System.Threading.CancellationToken, System.Threading.Tasks.Task> subscribe) + where T : notnull { } + public static System.IObservable> Create(System.Func, System.Threading.CancellationToken, System.Threading.Tasks.Task> subscribe) + where T : notnull { } + public static System.IObservable> Create(System.Func, System.Action> subscribe, System.Func keySelector) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Create(System.Func, System.IDisposable> subscribe, System.Func keySelector) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Create(System.Func, System.Threading.Tasks.Task> subscribe, System.Func keySelector) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Create(System.Func, System.Threading.Tasks.Task> subscribe, System.Func keySelector) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Create(System.Func, System.Threading.Tasks.Task> subscribe, System.Func keySelector) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Create(System.Func, System.Threading.CancellationToken, System.Threading.Tasks.Task> subscribe, System.Func keySelector) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Create(System.Func, System.Threading.CancellationToken, System.Threading.Tasks.Task> subscribe, System.Func keySelector) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Create(System.Func, System.Threading.CancellationToken, System.Threading.Tasks.Task> subscribe, System.Func keySelector) + where TObject : notnull + where TKey : notnull { } + } + public static class ObservableListEx + { + public static System.IObservable> Adapt(this System.IObservable> source, DynamicData.IChangeSetAdaptor adaptor) + where T : notnull { } + public static System.IObservable> AddKey(this System.IObservable> source, System.Func keySelector) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> And(this DynamicData.IObservableList> sources) + where T : notnull { } + public static System.IObservable> And(this DynamicData.IObservableList> sources) + where T : notnull { } + public static System.IObservable> And(this DynamicData.IObservableList>> sources) + where T : notnull { } + public static System.IObservable> And(this System.Collections.Generic.ICollection>> sources) + where T : notnull { } + public static System.IObservable> And(this System.IObservable> source, params System.IObservable>[] others) + where T : notnull { } + public static DynamicData.IObservableList AsObservableList(this DynamicData.ISourceList source) + where T : notnull { } + public static DynamicData.IObservableList AsObservableList(this System.IObservable> source) + where T : notnull { } + public static System.IObservable> AutoRefresh(this System.IObservable> source, System.TimeSpan? changeSetBuffer = default, System.TimeSpan? propertyChangeThrottle = default, System.Reactive.Concurrency.IScheduler? scheduler = null) + where TObject : System.ComponentModel.INotifyPropertyChanged { } + public static System.IObservable> AutoRefresh(this System.IObservable> source, System.Linq.Expressions.Expression> propertyAccessor, System.TimeSpan? changeSetBuffer = default, System.TimeSpan? propertyChangeThrottle = default, System.Reactive.Concurrency.IScheduler? scheduler = null) + where TObject : System.ComponentModel.INotifyPropertyChanged { } + public static System.IObservable> AutoRefreshOnObservable(this System.IObservable> source, System.Func> reevaluator, System.TimeSpan? changeSetBuffer = default, System.Reactive.Concurrency.IScheduler? scheduler = null) + where TObject : notnull { } + public static System.IObservable> Bind(this System.IObservable> source, DynamicData.Binding.IObservableCollection targetCollection, int resetThreshold = 25) + where T : notnull { } + public static System.IObservable> Bind(this System.IObservable> source, out System.Collections.ObjectModel.ReadOnlyObservableCollection readOnlyObservableCollection, int resetThreshold = 25) + where T : notnull { } + public static System.IObservable> Bind(this System.IObservable> source, System.ComponentModel.BindingList bindingList, int resetThreshold = 25) + where T : notnull { } + public static System.IObservable> BufferIf(this System.IObservable> source, System.IObservable pauseIfTrueSelector, System.Reactive.Concurrency.IScheduler? scheduler = null) + where T : notnull { } + public static System.IObservable> BufferIf(this System.IObservable> source, System.IObservable pauseIfTrueSelector, bool initialPauseState, System.Reactive.Concurrency.IScheduler? scheduler = null) + where T : notnull { } + public static System.IObservable> BufferIf(this System.IObservable> source, System.IObservable pauseIfTrueSelector, System.TimeSpan? timeOut, System.Reactive.Concurrency.IScheduler? scheduler = null) + where T : notnull { } + public static System.IObservable> BufferIf(this System.IObservable> source, System.IObservable pauseIfTrueSelector, bool initialPauseState, System.TimeSpan? timeOut, System.Reactive.Concurrency.IScheduler? scheduler = null) + where T : notnull { } + public static System.IObservable> BufferInitial(this System.IObservable> source, System.TimeSpan initialBuffer, System.Reactive.Concurrency.IScheduler? scheduler = null) + where TObject : notnull { } + public static System.IObservable> Cast(this System.IObservable> source) + where TDestination : notnull { } + public static System.IObservable> Cast(this System.IObservable> source, System.Func conversionFactory) + where TSource : notnull + where TDestination : notnull { } + public static System.IObservable> CastToObject(this System.IObservable> source) + where T : class { } + public static System.IObservable> Clone(this System.IObservable> source, System.Collections.Generic.IList target) + where T : notnull { } + [System.Obsolete("Prefer Cast as it is does the same thing but is semantically correct")] + public static System.IObservable> Convert(this System.IObservable> source, System.Func conversionFactory) + where TObject : notnull + where TDestination : notnull { } + public static System.IObservable> DeferUntilLoaded(this DynamicData.IObservableList source) + where T : notnull { } + public static System.IObservable> DeferUntilLoaded(this System.IObservable> source) + where T : notnull { } + public static System.IObservable> DisposeMany(this System.IObservable> source) + where T : notnull { } + public static System.IObservable> DistinctValues(this System.IObservable> source, System.Func valueSelector) + where TObject : notnull + where TValue : notnull { } + public static System.IObservable> Except(this DynamicData.IObservableList> sources) + where T : notnull { } + public static System.IObservable> Except(this DynamicData.IObservableList> sources) + where T : notnull { } + public static System.IObservable> Except(this DynamicData.IObservableList>> sources) + where T : notnull { } + public static System.IObservable> Except(this System.Collections.Generic.ICollection>> sources) + where T : notnull { } + public static System.IObservable> Except(this System.IObservable> source, params System.IObservable>[] others) + where T : notnull { } + public static System.IObservable> ExpireAfter(this DynamicData.ISourceList source, System.Func timeSelector, System.Reactive.Concurrency.IScheduler? scheduler = null) + where T : notnull { } + public static System.IObservable> ExpireAfter(this DynamicData.ISourceList source, System.Func timeSelector, System.TimeSpan? pollingInterval = default, System.Reactive.Concurrency.IScheduler? scheduler = null) + where T : notnull { } + public static System.IObservable> Filter(this System.IObservable> source, System.Func predicate) + where T : notnull { } + public static System.IObservable> Filter(this System.IObservable> source, System.IObservable> predicate, DynamicData.ListFilterPolicy filterPolicy = 1) + where T : notnull { } + public static System.IObservable> FilterOnObservable(this System.IObservable> source, System.Func> objectFilterObservable, System.TimeSpan? propertyChangedThrottle = default, System.Reactive.Concurrency.IScheduler? scheduler = null) + where TObject : notnull { } + [System.Obsolete("Use AutoRefresh(), followed by Filter() instead")] + public static System.IObservable> FilterOnProperty(this System.IObservable> source, System.Linq.Expressions.Expression> propertySelector, System.Func predicate, System.TimeSpan? propertyChangedThrottle = default, System.Reactive.Concurrency.IScheduler? scheduler = null) + where TObject : System.ComponentModel.INotifyPropertyChanged { } + public static System.IObservable> FlattenBufferResult(this System.IObservable>> source) + where T : notnull { } + public static System.IObservable> ForEachChange(this System.IObservable> source, System.Action> action) + where TObject : notnull { } + public static System.IObservable> ForEachItemChange(this System.IObservable> source, System.Action> action) + where TObject : notnull { } + public static System.IObservable>> GroupOn(this System.IObservable> source, System.Func groupSelector, System.IObservable? regrouper = null) + where TObject : notnull + where TGroup : notnull { } + public static System.IObservable>> GroupOnProperty(this System.IObservable> source, System.Linq.Expressions.Expression> propertySelector, System.TimeSpan? propertyChangedThrottle = default, System.Reactive.Concurrency.IScheduler? scheduler = null) + where TObject : System.ComponentModel.INotifyPropertyChanged + where TGroup : notnull { } + public static System.IObservable>> GroupOnPropertyWithImmutableState(this System.IObservable> source, System.Linq.Expressions.Expression> propertySelector, System.TimeSpan? propertyChangedThrottle = default, System.Reactive.Concurrency.IScheduler? scheduler = null) + where TObject : System.ComponentModel.INotifyPropertyChanged + where TGroup : notnull { } + public static System.IObservable>> GroupWithImmutableState(this System.IObservable> source, System.Func groupSelectorKey, System.IObservable? regrouper = null) + where TObject : notnull + where TGroupKey : notnull { } + public static System.IObservable> LimitSizeTo(this DynamicData.ISourceList source, int sizeLimit, System.Reactive.Concurrency.IScheduler? scheduler = null) + where T : notnull { } + public static System.IObservable MergeMany(this System.IObservable> source, System.Func> observableSelector) + where T : notnull { } + public static System.IObservable> NotEmpty(this System.IObservable> source) + where T : notnull { } + public static System.IObservable> OnItemAdded(this System.IObservable> source, System.Action addAction) + where T : notnull { } + public static System.IObservable> OnItemRefreshed(this System.IObservable> source, System.Action refreshAction) + where TObject : notnull { } + public static System.IObservable> OnItemRemoved(this System.IObservable> source, System.Action removeAction, bool invokeOnUnsubscribe = true) + where T : notnull { } + public static System.IObservable> Or(this DynamicData.IObservableList> sources) + where T : notnull { } + public static System.IObservable> Or(this DynamicData.IObservableList> sources) + where T : notnull { } + public static System.IObservable> Or(this DynamicData.IObservableList>> sources) + where T : notnull { } + public static System.IObservable> Or(this System.Collections.Generic.ICollection>> sources) + where T : notnull { } + public static System.IObservable> Or(this System.IObservable> source, params System.IObservable>[] others) + where T : notnull { } + public static System.IObservable> Page(this System.IObservable> source, System.IObservable requests) + where T : notnull { } + public static System.IDisposable PopulateInto(this System.IObservable> source, DynamicData.ISourceList destination) + where T : notnull { } + public static System.IObservable> QueryWhenChanged(this System.IObservable> source) + where T : notnull { } + public static System.IObservable QueryWhenChanged(this System.IObservable> source, System.Func, TDestination> resultSelector) + where TObject : notnull { } + public static System.IObservable> RefCount(this System.IObservable> source) + where T : notnull { } + public static System.IObservable> RemoveIndex(this System.IObservable> source) + where T : notnull { } + public static System.IObservable> Reverse(this System.IObservable> source) + where T : notnull { } + public static System.IObservable> SkipInitial(this System.IObservable> source) + where T : notnull { } + public static System.IObservable> Sort(this System.IObservable> source, System.IObservable> comparerChanged, DynamicData.SortOptions options = 0, System.IObservable? resort = null, int resetThreshold = 50) + where T : notnull { } + public static System.IObservable> Sort(this System.IObservable> source, System.Collections.Generic.IComparer comparer, DynamicData.SortOptions options = 0, System.IObservable? resort = null, System.IObservable>? comparerChanged = null, int resetThreshold = 50) + where T : notnull { } + public static System.IObservable> StartWithEmpty(this System.IObservable> source) + where T : notnull { } + public static System.IObservable> SubscribeMany(this System.IObservable> source, System.Func subscriptionFactory) + where T : notnull { } + public static System.IObservable> SuppressRefresh(this System.IObservable> source) + where T : notnull { } + public static System.IObservable> Switch(this System.IObservable> sources) + where T : notnull { } + public static System.IObservable> Switch(this System.IObservable>> sources) + where T : notnull { } + public static System.IObservable> ToCollection(this System.IObservable> source) + where TObject : notnull { } + public static System.IObservable> ToObservableChangeSet(this System.IObservable> source, System.Reactive.Concurrency.IScheduler? scheduler = null) + where T : notnull { } + public static System.IObservable> ToObservableChangeSet(this System.IObservable source, System.Reactive.Concurrency.IScheduler? scheduler = null) + where T : notnull { } + public static System.IObservable> ToObservableChangeSet(this System.IObservable> source, System.Func expireAfter, System.Reactive.Concurrency.IScheduler? scheduler = null) + where T : notnull { } + public static System.IObservable> ToObservableChangeSet(this System.IObservable> source, int limitSizeTo, System.Reactive.Concurrency.IScheduler? scheduler = null) + where T : notnull { } + public static System.IObservable> ToObservableChangeSet(this System.IObservable source, System.Func expireAfter, System.Reactive.Concurrency.IScheduler? scheduler = null) + where T : notnull { } + public static System.IObservable> ToObservableChangeSet(this System.IObservable source, int limitSizeTo, System.Reactive.Concurrency.IScheduler? scheduler = null) + where T : notnull { } + public static System.IObservable> ToObservableChangeSet(this System.IObservable> source, System.Func? expireAfter, int limitSizeTo, System.Reactive.Concurrency.IScheduler? scheduler = null) + where T : notnull { } + public static System.IObservable> ToObservableChangeSet(this System.IObservable source, System.Func? expireAfter, int limitSizeTo, System.Reactive.Concurrency.IScheduler? scheduler = null) + where T : notnull { } + public static System.IObservable> ToSortedCollection(this System.IObservable> source, System.Collections.Generic.IComparer comparer) + where TObject : notnull { } + public static System.IObservable> ToSortedCollection(this System.IObservable> source, System.Func sort, DynamicData.Binding.SortDirection sortOrder = 0) + where TObject : notnull { } + public static System.IObservable> Top(this System.IObservable> source, int numberOfItems) + where T : notnull { } + public static System.IObservable> Transform(this System.IObservable> source, System.Func transformFactory, bool transformOnRefresh = false) + where TSource : notnull + where TDestination : notnull { } + public static System.IObservable> Transform(this System.IObservable> source, System.Func, TDestination> transformFactory, bool transformOnRefresh = false) + where TSource : notnull + where TDestination : notnull { } + public static System.IObservable> Transform(this System.IObservable> source, System.Func transformFactory, bool transformOnRefresh = false) + where TSource : notnull + where TDestination : notnull { } + public static System.IObservable> Transform(this System.IObservable> source, System.Func, int, TDestination> transformFactory, bool transformOnRefresh = false) + where TSource : notnull + where TDestination : notnull { } + public static System.IObservable> TransformAsync(this System.IObservable> source, System.Func> transformFactory, bool transformOnRefresh = false) + where TSource : notnull + where TDestination : notnull { } + public static System.IObservable> TransformAsync(this System.IObservable> source, System.Func, System.Threading.Tasks.Task> transformFactory, bool transformOnRefresh = false) + where TSource : notnull + where TDestination : notnull { } + public static System.IObservable> TransformAsync(this System.IObservable> source, System.Func> transformFactory, bool transformOnRefresh = false) + where TSource : notnull + where TDestination : notnull { } + public static System.IObservable> TransformAsync(this System.IObservable> source, System.Func, int, System.Threading.Tasks.Task> transformFactory, bool transformOnRefresh = false) + where TSource : notnull + where TDestination : notnull { } + public static System.IObservable> TransformMany(this System.IObservable> source, System.Func> manySelector, System.Collections.Generic.IEqualityComparer? equalityComparer = null) + where TDestination : notnull + where TSource : notnull { } + public static System.IObservable> TransformMany(this System.IObservable> source, System.Func> manySelector, System.Collections.Generic.IEqualityComparer? equalityComparer = null) + where TDestination : notnull + where TSource : notnull { } + public static System.IObservable> TransformMany(this System.IObservable> source, System.Func> manySelector, System.Collections.Generic.IEqualityComparer? equalityComparer = null) + where TDestination : notnull + where TSource : notnull { } + public static System.IObservable> TransformMany(this System.IObservable> source, System.Func> manySelector, System.Collections.Generic.IEqualityComparer? equalityComparer = null) + where TDestination : notnull + where TSource : notnull { } + public static System.IObservable> Virtualise(this System.IObservable> source, System.IObservable requests) + where T : notnull { } + public static System.IObservable WhenAnyPropertyChanged(this System.IObservable> source, params string[] propertiesToMonitor) + where TObject : System.ComponentModel.INotifyPropertyChanged { } + public static System.IObservable> WhenPropertyChanged(this System.IObservable> source, System.Linq.Expressions.Expression> propertyAccessor, bool notifyOnInitialValue = true) + where TObject : System.ComponentModel.INotifyPropertyChanged { } + public static System.IObservable WhenValueChanged(this System.IObservable> source, System.Linq.Expressions.Expression> propertyAccessor, bool notifyOnInitialValue = true) + where TObject : System.ComponentModel.INotifyPropertyChanged { } + public static System.IObservable> WhereReasonsAre(this System.IObservable> source, params DynamicData.ListChangeReason[] reasons) + where T : notnull { } + public static System.IObservable> WhereReasonsAreNot(this System.IObservable> source, params DynamicData.ListChangeReason[] reasons) + where T : notnull { } + public static System.IObservable> Xor(this DynamicData.IObservableList> sources) + where T : notnull { } + public static System.IObservable> Xor(this DynamicData.IObservableList> sources) + where T : notnull { } + public static System.IObservable> Xor(this DynamicData.IObservableList>> sources) + where T : notnull { } + public static System.IObservable> Xor(this System.Collections.Generic.ICollection>> sources) + where T : notnull { } + public static System.IObservable> Xor(this System.IObservable> source, params System.IObservable>[] others) + where T : notnull { } + } + public static class ObsoleteEx { } + public sealed class PageRequest : DynamicData.IPageRequest, System.IEquatable + { + public static readonly DynamicData.IPageRequest Default; + public static readonly DynamicData.IPageRequest Empty; + public PageRequest() { } + public PageRequest(int page, int size) { } + public System.Collections.Generic.IEqualityComparer DefaultComparer { get; } + public int Page { get; } + public int Size { get; } + public bool Equals(DynamicData.IPageRequest? other) { } + public override bool Equals(object? obj) { } + public override int GetHashCode() { } + public override string ToString() { } + } + public sealed class RangeChange : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + public RangeChange(System.Collections.Generic.IEnumerable items, int index = -1) { } + public int Count { get; } + public int Index { get; } + public static DynamicData.RangeChange Empty { get; } + public void Add(T item) { } + public System.Collections.Generic.IEnumerator GetEnumerator() { } + public void Insert(int index, T item) { } + public void SetStartingIndex(int index) { } + public override string ToString() { } + } + [System.Serializable] + public class SortException : System.Exception + { + public SortException() { } + public SortException(string message) { } + protected SortException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) { } + public SortException(string message, System.Exception innerException) { } + } + [System.Flags] + public enum SortOptimisations + { + None = 0, + ComparesImmutableValuesOnly = 1, + IgnoreEvaluates = 2, + [System.Obsolete("This is no longer being used. Use one of the other options instead.")] + InsertAtEndThenSort = 3, + } + public enum SortOptions + { + None = 0, + UseBinarySearch = 1, + } + public enum SortReason + { + InitialLoad = 0, + ComparerChanged = 1, + DataChanged = 2, + Reorder = 3, + Reset = 4, + } + public static class SourceCacheEx + { + public static System.IObservable> Cast(this DynamicData.IObservableCache source, System.Func converter) + where TSource : notnull + where TKey : notnull + where TDestination : notnull { } + } + [System.Diagnostics.DebuggerDisplay("SourceCache<{typeof(TObject).Name}, {typeof(TKey).Name}> ({Count} Items)")] + public sealed class SourceCache : DynamicData.IConnectableCache, DynamicData.IObservableCache, DynamicData.ISourceCache, System.IDisposable + where TObject : notnull + where TKey : notnull + { + public SourceCache(System.Func keySelector) { } + public int Count { get; } + public System.IObservable CountChanged { get; } + public System.Collections.Generic.IEnumerable Items { get; } + public System.Func KeySelector { get; } + public System.Collections.Generic.IEnumerable> KeyValues { get; } + public System.Collections.Generic.IEnumerable Keys { get; } + public System.IObservable> Connect(System.Func? predicate = null, bool suppressEmptyChangeSets = true) { } + public void Dispose() { } + public void Edit(System.Action> updateAction) { } + public DynamicData.Kernel.Optional Lookup(TKey key) { } + public System.IObservable> Preview(System.Func? predicate = null) { } + public System.IObservable> Watch(TKey key) { } + } + public static class SourceListEditConvenienceEx + { + public static void Add(this DynamicData.ISourceList source, T item) + where T : notnull { } + public static void AddRange(this DynamicData.ISourceList source, System.Collections.Generic.IEnumerable items) + where T : notnull { } + public static void Clear(this DynamicData.ISourceList source) + where T : notnull { } + public static void EditDiff(this DynamicData.ISourceList source, System.Collections.Generic.IEnumerable allItems, System.Collections.Generic.IEqualityComparer? equalityComparer = null) + where T : notnull { } + public static void Insert(this DynamicData.ISourceList source, int index, T item) + where T : notnull { } + public static void InsertRange(this DynamicData.ISourceList source, System.Collections.Generic.IEnumerable items, int index) + where T : notnull { } + public static void Move(this DynamicData.ISourceList source, int original, int destination) + where T : notnull { } + public static bool Remove(this DynamicData.ISourceList source, T item) + where T : notnull { } + public static void RemoveAt(this DynamicData.ISourceList source, int index) + where T : notnull { } + public static void RemoveMany(this DynamicData.ISourceList source, System.Collections.Generic.IEnumerable itemsToRemove) + where T : notnull { } + public static void RemoveRange(this DynamicData.ISourceList source, int index, int count) + where T : notnull { } + public static void Replace(this DynamicData.ISourceList source, T original, T destination) + where T : notnull { } + public static void ReplaceAt(this DynamicData.ISourceList source, int index, T item) + where T : notnull { } + } + public static class SourceListEx + { + public static System.IObservable> Cast(this DynamicData.ISourceList source, System.Func conversionFactory) + where TSource : notnull + where TDestination : notnull { } + } + [System.Diagnostics.DebuggerDisplay("SourceList<{typeof(T).Name}> ({Count} Items)")] + public sealed class SourceList : DynamicData.IObservableList, DynamicData.ISourceList, System.IDisposable + where T : notnull + { + public SourceList(System.IObservable>? source = null) { } + public int Count { get; } + public System.IObservable CountChanged { get; } + public System.Collections.Generic.IEnumerable Items { get; } + public System.IObservable> Connect(System.Func? predicate = null) { } + public void Dispose() { } + public void Edit(System.Action> updateAction) { } + public System.IObservable> Preview(System.Func? predicate = null) { } + } + [System.Serializable] + public class UnspecifiedIndexException : System.Exception + { + public UnspecifiedIndexException() { } + public UnspecifiedIndexException(string message) { } + protected UnspecifiedIndexException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) { } + public UnspecifiedIndexException(string message, System.Exception innerException) { } + } + public class VirtualRequest : DynamicData.IVirtualRequest, System.IEquatable + { + public static readonly DynamicData.VirtualRequest Default; + public VirtualRequest() { } + public VirtualRequest(int startIndex, int size) { } + public int Size { get; } + public int StartIndex { get; } + public static System.Collections.Generic.IEqualityComparer StartIndexSizeComparer { get; } + public bool Equals(DynamicData.IVirtualRequest? other) { } + public override bool Equals(object? obj) { } + public override int GetHashCode() { } + public override string ToString() { } + } +} +namespace DynamicData.Diagnostics +{ + public class ChangeStatistics : System.IEquatable + { + public ChangeStatistics() { } + public ChangeStatistics(int index, int adds, int updates, int removes, int refreshes, int moves, int count) { } + public int Adds { get; } + public int Count { get; } + public int Index { get; } + public System.DateTime LastUpdated { get; } + public int Moves { get; } + public int Refreshes { get; } + public int Removes { get; } + public int Updates { get; } + public bool Equals(DynamicData.Diagnostics.ChangeStatistics? other) { } + public override bool Equals(object? obj) { } + public override int GetHashCode() { } + public override string ToString() { } + public static bool operator !=(DynamicData.Diagnostics.ChangeStatistics left, DynamicData.Diagnostics.ChangeStatistics right) { } + public static bool operator ==(DynamicData.Diagnostics.ChangeStatistics left, DynamicData.Diagnostics.ChangeStatistics right) { } + } + public class ChangeSummary + { + public static readonly DynamicData.Diagnostics.ChangeSummary Empty; + public ChangeSummary(int index, DynamicData.Diagnostics.ChangeStatistics latest, DynamicData.Diagnostics.ChangeStatistics overall) { } + public DynamicData.Diagnostics.ChangeStatistics Latest { get; } + public DynamicData.Diagnostics.ChangeStatistics Overall { get; } + public override bool Equals(object? obj) { } + public override int GetHashCode() { } + public override string ToString() { } + } + public static class DiagnosticOperators + { + public static System.IObservable CollectUpdateStats(this System.IObservable> source) + where TSource : notnull { } + public static System.IObservable CollectUpdateStats(this System.IObservable> source) + where TSource : notnull + where TKey : notnull { } + } +} +namespace DynamicData.Experimental +{ + public static class ExperimentalEx + { + public static DynamicData.Experimental.IWatcher AsWatcher(this System.IObservable> source, System.Reactive.Concurrency.IScheduler? scheduler = null) + where TObject : notnull + where TKey : notnull { } + } + public interface IWatcher : System.IDisposable + where TObject : notnull + where TKey : notnull + { + System.IObservable> Watch(TKey key); + } +} +namespace DynamicData.Kernel +{ + public enum ConnectionStatus + { + Pending = 0, + Loaded = 1, + Errored = 2, + Completed = 3, + } + public static class EnumerableEx + { + public static T[] AsArray(this System.Collections.Generic.IEnumerable source) { } + public static System.Collections.Generic.List AsList(this System.Collections.Generic.IEnumerable source) { } + public static System.Collections.Generic.IEnumerable Duplicates(this System.Collections.Generic.IEnumerable source, System.Func valueSelector) { } + public static System.Collections.Generic.IEnumerable> IndexOfMany(this System.Collections.Generic.IEnumerable source, System.Collections.Generic.IEnumerable itemsToFind) { } + public static System.Collections.Generic.IEnumerable IndexOfMany(this System.Collections.Generic.IEnumerable source, System.Collections.Generic.IEnumerable itemsToFind, System.Func resultSelector) { } + } + public sealed class Error : DynamicData.IKeyValue, DynamicData.IKey, System.IEquatable> + where TKey : notnull + { + public Error(System.Exception? exception, TObject value, TKey key) { } + public System.Exception? Exception { get; } + public TKey Key { get; } + public TObject Value { get; } + public bool Equals(DynamicData.Kernel.Error? other) { } + public override bool Equals(object? obj) { } + public override int GetHashCode() { } + public override string ToString() { } + public static bool operator !=(DynamicData.Kernel.Error left, DynamicData.Kernel.Error right) { } + public static bool operator ==(DynamicData.Kernel.Error left, DynamicData.Kernel.Error right) { } + } + public static class InternalEx + { + public static System.IObservable RetryWithBackOff(this System.IObservable source, System.Func backOffStrategy) + where TException : System.Exception { } + public static System.IDisposable ScheduleRecurringAction(this System.Reactive.Concurrency.IScheduler scheduler, System.Func interval, System.Action action) { } + public static System.IDisposable ScheduleRecurringAction(this System.Reactive.Concurrency.IScheduler scheduler, System.TimeSpan interval, System.Action action) { } + } + public readonly struct ItemWithIndex : System.IEquatable> + { + public ItemWithIndex(T item, int index) { } + public int Index { get; } + public T Item { get; } + public bool Equals(DynamicData.Kernel.ItemWithIndex other) { } + public override bool Equals(object? obj) { } + public override int GetHashCode() { } + public override string ToString() { } + public static bool operator !=(DynamicData.Kernel.ItemWithIndex left, DynamicData.Kernel.ItemWithIndex right) { } + public static bool operator ==(DynamicData.Kernel.ItemWithIndex left, DynamicData.Kernel.ItemWithIndex right) { } + } + public readonly struct ItemWithValue : System.IEquatable> + { + public ItemWithValue(TObject item, TValue value) { } + public TObject Item { get; } + public TValue Value { get; } + public bool Equals(DynamicData.Kernel.ItemWithValue other) { } + public override bool Equals(object? obj) { } + public override int GetHashCode() { } + public override string ToString() { } + public static bool operator !=(DynamicData.Kernel.ItemWithValue left, DynamicData.Kernel.ItemWithValue right) { } + public static bool operator ==(DynamicData.Kernel.ItemWithValue left, DynamicData.Kernel.ItemWithValue right) { } + } + public sealed class OptionElse + { + public void Else(System.Action action) { } + } + public static class OptionExtensions + { + public static DynamicData.Kernel.Optional Convert(this DynamicData.Kernel.Optional source, System.Func> converter) + where TSource : notnull + where TDestination : notnull { } + public static DynamicData.Kernel.Optional Convert(this DynamicData.Kernel.Optional source, System.Func converter) + where TSource : notnull + where TDestination : notnull { } + public static TDestination? ConvertOr(this DynamicData.Kernel.Optional source, System.Func converter, System.Func fallbackConverter) + where TSource : notnull { } + public static DynamicData.Kernel.Optional FirstOrOptional(this System.Collections.Generic.IEnumerable source, System.Func selector) + where T : notnull { } + public static DynamicData.Kernel.OptionElse IfHasValue(this DynamicData.Kernel.Optional source, System.Action action) + where T : notnull { } + public static DynamicData.Kernel.OptionElse IfHasValue(this DynamicData.Kernel.Optional? source, System.Action action) + where T : notnull { } + public static DynamicData.Kernel.Optional Lookup(this System.Collections.Generic.IDictionary source, TKey key) + where TValue : notnull { } + public static DynamicData.Kernel.Optional OrElse(this DynamicData.Kernel.Optional source, System.Func> fallbackOperation) + where T : notnull { } + public static bool RemoveIfContained(this System.Collections.Generic.IDictionary source, TKey key) { } + public static System.Collections.Generic.IEnumerable SelectValues(this System.Collections.Generic.IEnumerable> source) + where T : notnull { } + public static T ValueOr(this DynamicData.Kernel.Optional source, System.Func valueSelector) + where T : notnull { } + public static T ValueOr(this T? source, T defaultValue) + where T : struct { } + public static T? ValueOrDefault(this DynamicData.Kernel.Optional source) + where T : notnull { } + public static T ValueOrThrow(this DynamicData.Kernel.Optional source, System.Func exceptionGenerator) + where T : notnull { } + } + public static class OptionObservableExtensions + { + public static System.IObservable> Convert(this System.IObservable> source, System.Func> converter) + where TSource : notnull + where TDestination : notnull { } + public static System.IObservable> Convert(this System.IObservable> source, System.Func converter) + where TSource : notnull + where TDestination : notnull { } + public static System.IObservable ConvertOr(this System.IObservable> source, System.Func converter, System.Func fallbackConverter) + where TSource : notnull { } + public static System.IObservable> OnHasNoValue(this System.IObservable> source, System.Action action, System.Action? elseAction = null) + where T : notnull { } + public static System.IObservable> OnHasValue(this System.IObservable> source, System.Action action, System.Action? elseAction = null) + where T : notnull { } + public static System.IObservable> OrElse(this System.IObservable> source, System.Func> fallbackOperation) + where T : notnull { } + public static System.IObservable SelectValues(this System.IObservable> source) + where T : notnull { } + public static System.IObservable ValueOr(this System.IObservable> source, System.Func valueSelector) + where T : notnull { } + public static System.IObservable ValueOrDefault(this System.IObservable> source) + where T : notnull { } + public static System.IObservable ValueOrThrow(this System.IObservable> source, System.Func exceptionGenerator) + where T : notnull { } + } + public static class Optional + { + public static DynamicData.Kernel.Optional None() + where T : notnull { } + public static DynamicData.Kernel.Optional Some(T? value) + where T : notnull { } + } + public readonly struct Optional : System.IEquatable> + where T : notnull + { + public bool HasValue { get; } + public T Value { get; } + public static DynamicData.Kernel.Optional None { get; } + public bool Equals(DynamicData.Kernel.Optional other) { } + public override bool Equals(object? obj) { } + public override int GetHashCode() { } + public override string? ToString() { } + public static DynamicData.Kernel.Optional Create(T? value) { } + public static T? FromOptional(DynamicData.Kernel.Optional value) { } + public static DynamicData.Kernel.Optional ToOptional(T? value) { } + public static T? op_Explicit(DynamicData.Kernel.Optional value) { } + public static DynamicData.Kernel.Optional op_Implicit(T? value) { } + public static bool operator !=(DynamicData.Kernel.Optional left, DynamicData.Kernel.Optional right) { } + public static bool operator ==(DynamicData.Kernel.Optional left, DynamicData.Kernel.Optional right) { } + } +} +namespace DynamicData.List +{ + public interface IGrouping + { + int Count { get; } + System.Collections.Generic.IEnumerable Items { get; } + TGroupKey Key { get; } + } +} +namespace DynamicData.Operators +{ + public interface IPageResponse + { + int Page { get; } + int PageSize { get; } + int Pages { get; } + int TotalSize { get; } + } +} +namespace DynamicData.PLinq +{ + public static class ParallelOperators + { + public static System.IObservable> Filter(this System.IObservable> source, System.Func filter, DynamicData.PLinq.ParallelisationOptions parallelisationOptions) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> SubscribeMany(this System.IObservable> source, System.Func subscriptionFactory, DynamicData.PLinq.ParallelisationOptions parallelisationOptions) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> SubscribeMany(this System.IObservable> source, System.Func subscriptionFactory, DynamicData.PLinq.ParallelisationOptions parallelisationOptions) + where TObject : notnull + where TKey : notnull { } + public static System.IObservable> Transform(this System.IObservable> source, System.Func transformFactory, DynamicData.PLinq.ParallelisationOptions parallelisationOptions) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> Transform(this System.IObservable> source, System.Func transformFactory, DynamicData.PLinq.ParallelisationOptions parallelisationOptions) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> TransformSafe(this System.IObservable> source, System.Func transformFactory, System.Action> errorHandler, DynamicData.PLinq.ParallelisationOptions parallelisationOptions) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + public static System.IObservable> TransformSafe(this System.IObservable> source, System.Func transformFactory, System.Action> errorHandler, DynamicData.PLinq.ParallelisationOptions parallelisationOptions) + where TDestination : notnull + where TSource : notnull + where TKey : notnull { } + } + public enum ParallelType + { + None = 0, + Parallelise = 1, + Ordered = 2, + } + public class ParallelisationOptions + { + public static readonly DynamicData.PLinq.ParallelisationOptions Default; + public static readonly DynamicData.PLinq.ParallelisationOptions None; + public ParallelisationOptions(DynamicData.PLinq.ParallelType type = 0, int threshold = 0, int maxDegreeOfParallelisation = 0) { } + public int MaxDegreeOfParallelisation { get; } + public int Threshold { get; } + public DynamicData.PLinq.ParallelType Type { get; } + } +} +namespace DynamicData.Tests +{ + public class ChangeSetAggregator : System.IDisposable + where TObject : notnull + { + public ChangeSetAggregator(System.IObservable> source) { } + public DynamicData.IObservableList Data { get; } + public System.Exception? Exception { get; set; } + public System.Collections.Generic.IList> Messages { get; } + public void Dispose() { } + protected virtual void Dispose(bool isDisposing) { } + } + public class ChangeSetAggregator : System.IDisposable + where TObject : notnull + where TKey : notnull + { + public ChangeSetAggregator(System.IObservable> source) { } + public bool Completed { get; } + public DynamicData.IObservableCache Data { get; } + public System.Exception? Error { get; } + public System.Collections.Generic.IList> Messages { get; } + public DynamicData.Diagnostics.ChangeSummary Summary { get; } + public void Dispose() { } + protected virtual void Dispose(bool isDisposing) { } + } + public class DistinctChangeSetAggregator : System.IDisposable + where TValue : notnull + { + public DistinctChangeSetAggregator(System.IObservable> source) { } + public DynamicData.IObservableCache Data { get; } + public System.Exception? Error { get; } + public System.Collections.Generic.IList> Messages { get; } + public DynamicData.Diagnostics.ChangeSummary Summary { get; } + public void Dispose() { } + protected virtual void Dispose(bool isDisposing) { } + } + public static class ListTextEx + { + public static DynamicData.Tests.ChangeSetAggregator AsAggregator(this System.IObservable> source) + where T : notnull { } + } + public class PagedChangeSetAggregator : System.IDisposable + where TObject : notnull + where TKey : notnull + { + public PagedChangeSetAggregator(System.IObservable> source) { } + public DynamicData.IObservableCache Data { get; } + public System.Exception? Error { get; } + public System.Collections.Generic.IList> Messages { get; } + public DynamicData.Diagnostics.ChangeSummary Summary { get; } + public void Dispose() { } + protected virtual void Dispose(bool isDisposing) { } + } + public class SortedChangeSetAggregator : System.IDisposable + where TObject : notnull + where TKey : notnull + { + public SortedChangeSetAggregator(System.IObservable> source) { } + public DynamicData.IObservableCache Data { get; } + public System.Exception? Error { get; } + public System.Collections.Generic.IList> Messages { get; } + public DynamicData.Diagnostics.ChangeSummary Summary { get; } + public void Dispose() { } + protected virtual void Dispose(bool isDisposing) { } + } + public static class TestEx + { + public static DynamicData.Tests.DistinctChangeSetAggregator AsAggregator(this System.IObservable> source) + where TValue : notnull { } + public static DynamicData.Tests.ChangeSetAggregator AsAggregator(this System.IObservable> source) + where TObject : notnull + where TKey : notnull { } + public static DynamicData.Tests.PagedChangeSetAggregator AsAggregator(this System.IObservable> source) + where TObject : notnull + where TKey : notnull { } + public static DynamicData.Tests.SortedChangeSetAggregator AsAggregator(this System.IObservable> source) + where TObject : notnull + where TKey : notnull { } + public static DynamicData.Tests.VirtualChangeSetAggregator AsAggregator(this System.IObservable> source) + where TObject : notnull + where TKey : notnull { } + } + public class VirtualChangeSetAggregator : System.IDisposable + where TObject : notnull + where TKey : notnull + { + public VirtualChangeSetAggregator(System.IObservable> source) { } + public DynamicData.IObservableCache Data { get; } + public System.Exception? Error { get; } + public System.Collections.Generic.IList> Messages { get; } + public DynamicData.Diagnostics.ChangeSummary Summary { get; } + public void Dispose() { } + protected virtual void Dispose(bool isDisposing) { } + } +} \ No newline at end of file diff --git a/src/DynamicData.Tests/API/ApiApprovalTests.cs b/src/DynamicData.Tests/API/ApiApprovalTests.cs new file mode 100644 index 000000000..6a6906cd4 --- /dev/null +++ b/src/DynamicData.Tests/API/ApiApprovalTests.cs @@ -0,0 +1,20 @@ +using System.Diagnostics.CodeAnalysis; +using VerifyXunit; +using Xunit; + +namespace DynamicData.APITests +{ + /// + /// Tests for handling API approval. + /// + [ExcludeFromCodeCoverage] + [UsesVerify] + public class ApiApprovalTests : ApiApprovalBase + { + /// + /// Tests to make sure the DynamicData project is approved. + /// + [Fact] + public void DynamicDataTests() => CheckApproval(typeof(VirtualRequest).Assembly); + } +} diff --git a/src/DynamicData.Tests/DynamicData.Tests.csproj b/src/DynamicData.Tests/DynamicData.Tests.csproj index ce14a216b..927b377e7 100644 --- a/src/DynamicData.Tests/DynamicData.Tests.csproj +++ b/src/DynamicData.Tests/DynamicData.Tests.csproj @@ -1,4 +1,4 @@ - + net6.0 $(NoWarn);CS0618;CA1801;CA1063;CS8767;CS8602; CS8618 @@ -11,12 +11,14 @@ - + + + all runtime; build; native; contentfiles; analyzers