diff options
Diffstat (limited to 'FireBase/ObservableExtensions.cs')
-rw-r--r-- | FireBase/ObservableExtensions.cs | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/FireBase/ObservableExtensions.cs b/FireBase/ObservableExtensions.cs deleted file mode 100644 index 37c3ef7..0000000 --- a/FireBase/ObservableExtensions.cs +++ /dev/null @@ -1,44 +0,0 @@ -namespace Firebase.Database -{ - using System; - using System.Collections.ObjectModel; - - using Firebase.Database.Streaming; - - /// <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; - } - } -} |