From fe204c3c05208766513e68cab7907c50bce009c1 Mon Sep 17 00:00:00 2001 From: oneRain Date: Fri, 6 Dec 2019 15:35:41 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E5=A2=9E=E5=8A=A0=E7=AE=80=E5=8D=95?= =?UTF-8?q?=E7=9A=84=E6=89=B9=E9=87=8F=E4=BF=9D=E5=AD=98=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Object/Controller/AVObjectController.cs | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Storage/Storage/Internal/Object/Controller/AVObjectController.cs b/Storage/Storage/Internal/Object/Controller/AVObjectController.cs index 6dc00e7..da2acad 100644 --- a/Storage/Storage/Internal/Object/Controller/AVObjectController.cs +++ b/Storage/Storage/Internal/Object/Controller/AVObjectController.cs @@ -72,6 +72,27 @@ namespace LeanCloud.Storage.Internal { return list; } + public async Task> SaveAllAsync(IList avObjects, CancellationToken cancellationToken) { + List commandList = new List(); + foreach (AVObject avObj in avObjects) { + AVCommand command = new AVCommand { + Path = avObj.ObjectId == null ? $"classes/{Uri.EscapeDataString(avObj.ClassName)}" : $"classes/{Uri.EscapeDataString(avObj.ClassName)}/{Uri.EscapeDataString(avObj.ObjectId)}", + Method = avObj.ObjectId == null ? HttpMethod.Post : HttpMethod.Put, + Content = AVObject.ToJSONObjectForSaving(avObj.StartSave()) + }; + commandList.Add(command); + } + IList list = new List(); + var result = await AVPlugins.Instance.CommandRunner.ExecuteBatchRequests(commandList, cancellationToken); + foreach (var data in result) { + if (data.TryGetValue("success", out object val)) { + IObjectState obj = AVObjectCoder.Instance.Decode(val as IDictionary, AVDecoder.Instance); + list.Add(obj); + } + } + return list; + } + public async Task DeleteAsync(IObjectState state, AVQuery query, CancellationToken cancellationToken) { var command = new AVCommand { Path = $"classes/{state.ClassName}/{state.ObjectId}",