summaryrefslogtreecommitdiff
path: root/FireBase/ObservableExtensions.cs
diff options
context:
space:
mode:
Diffstat (limited to 'FireBase/ObservableExtensions.cs')
-rw-r--r--FireBase/ObservableExtensions.cs40
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