summaryrefslogtreecommitdiff
path: root/FireBase/Offline/SetHandler.cs
diff options
context:
space:
mode:
Diffstat (limited to 'FireBase/Offline/SetHandler.cs')
-rw-r--r--FireBase/Offline/SetHandler.cs24
1 files changed, 24 insertions, 0 deletions
diff --git a/FireBase/Offline/SetHandler.cs b/FireBase/Offline/SetHandler.cs
new file mode 100644
index 0000000..1efa7b6
--- /dev/null
+++ b/FireBase/Offline/SetHandler.cs
@@ -0,0 +1,24 @@
+namespace Firebase.Database.Offline
+{
+ using Firebase.Database.Query;
+
+ using System.Threading.Tasks;
+
+ public class SetHandler<T> : ISetHandler<T>
+ {
+ public virtual async Task SetAsync(ChildQuery query, string key, OfflineEntry entry)
+ {
+ using (var child = query.Child(key))
+ {
+ if (entry.SyncOptions == SyncOptions.Put)
+ {
+ await child.PutAsync(entry.Data);
+ }
+ else
+ {
+ await child.PatchAsync(entry.Data);
+ }
+ }
+ }
+ }
+}