diff options
Diffstat (limited to 'FireBase/ObservableExtensions.cs')
-rw-r--r-- | FireBase/ObservableExtensions.cs | 40 |
1 files changed, 0 insertions, 40 deletions
diff --git a/FireBase/ObservableExtensions.cs b/FireBase/ObservableExtensions.cs deleted file mode 100644 index bc46261..0000000 --- a/FireBase/ObservableExtensions.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System; -using System.Collections.ObjectModel; -using Firebase.Database.Streaming; - -namespace Firebase.Database -{ - /// <summary> - /// Extensions for <see cref="IObservable{T}" />. - /// </summary> - public static class ObservableExtensions - { - /// <summary> - /// Starts observing on given firebase observable and propagates event into an <see cref="ObservableCollection{T}" />. - /// </summary> - /// <param name="observable"> The observable. </param> - /// <typeparam name="T"> Type of entity. </typeparam> - /// <returns> The <see cref="ObservableCollection{T}" />. </returns> - public static ObservableCollection<T> AsObservableCollection<T>(this IObservable<FirebaseEvent<T>> observable) - { - var collection = new ObservableCollection<T>(); - - observable.Subscribe(f => - { - if (f.EventType == FirebaseEventType.InsertOrUpdate) - { - var i = collection.IndexOf(f.Object); - if (i >= 0) collection.RemoveAt(i); - - collection.Add(f.Object); - } - else - { - collection.Remove(f.Object); - } - }); - - return collection; - } - } -}
\ No newline at end of file |