From 18b3a7dfffb732c508ee7f256a4dc236a3e07677 Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Fri, 13 Sep 2024 11:18:24 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20Flag-Enum=20f=C3=BCr=20Dokumentoperatio?= =?UTF-8?q?nen=20eingef=C3=BChrt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Ein `Flag`-Enum erstellt, um dokumentbezogene Operationen zu repräsentieren (z.B. `CreateObject`, `CheckIn` usw.). - Die Verwendung von Integer-Flags in `DocumentsRouteService` durch das neue Enum ersetzt, um die Lesbarkeit und Wartbarkeit des Codes zu verbessern. - Die `Upload`-Methode aktualisiert, um Flags als Array von `Flag`-Enum-Werten zu verarbeiten. --- .../Models/Documents/Flag.cs | 13 +++++++++++ .../Routes/DocumentsRouteService.cs | 22 +++++++++++-------- .../WindreamHub.Legacy.Client.csproj | 1 + 3 files changed, 27 insertions(+), 9 deletions(-) create mode 100644 src/WindreamHub.Legacy.Client/Models/Documents/Flag.cs diff --git a/src/WindreamHub.Legacy.Client/Models/Documents/Flag.cs b/src/WindreamHub.Legacy.Client/Models/Documents/Flag.cs new file mode 100644 index 0000000..11452fd --- /dev/null +++ b/src/WindreamHub.Legacy.Client/Models/Documents/Flag.cs @@ -0,0 +1,13 @@ +namespace WindreamHub.Legacy.Client.Models.Documents +{ + public enum Flag + { + CreateObject = 1, + CheckIn = 2, + CreateNewVersion = 4, + UseDefaultLocation = 8, + ReturnIndexingDetails = 16, + ForceOverwrite = 32, + CreateTree = 64 + } +} \ No newline at end of file diff --git a/src/WindreamHub.Legacy.Client/Routes/DocumentsRouteService.cs b/src/WindreamHub.Legacy.Client/Routes/DocumentsRouteService.cs index 907e866..950e183 100644 --- a/src/WindreamHub.Legacy.Client/Routes/DocumentsRouteService.cs +++ b/src/WindreamHub.Legacy.Client/Routes/DocumentsRouteService.cs @@ -8,6 +8,9 @@ using WindreamHub.Legacy.Client.Models.Documents.Response; using WindreamHub.Legacy.Client.Models.Documents.Create.Request; using System.IO; using System.Web; +using WindreamHub.Legacy.Client.Models.Documents; +using System.Linq; +using System; namespace WindreamHub.Legacy.Client.Routes { @@ -17,22 +20,22 @@ namespace WindreamHub.Legacy.Client.Routes { } - public async Task> Create(HttpContent docCreateBody) + public async Task> Create(HttpContent docCreateBody) => await FetchAsync(route: "/Create", method: HttpMethod.Post, body: docCreateBody) - .ThenAsync(res => res.Simplify()); + .ThenAsync(res => res.Simplify()); - public async Task> Create(DocCreateBody docCreateBody) + public async Task> Create(DocCreateBody docCreateBody) => await FetchAsync(route: "/Create", method: HttpMethod.Post, body: docCreateBody.Stringify()) - .ThenAsync(res => res.Simplify()); + .ThenAsync(res => res.Simplify()); - public async Task> Upload(string path, long? item_id = null, string item_location = null, string item_name = null, object stream_identity = null, params int[] flags) + public async Task> Upload(string path, long? item_id = null, string item_location = null, string item_name = null, object stream_identity = null, params Flag[] flags) { using (var fileStream = File.OpenRead(path)) { var fileContent = new StreamContent(fileStream); var formData = new MultipartFormDataContent { - { fileContent, "file", "filename.pdf" } + { fileContent, "file" }, }; var query = HttpUtility.ParseQueryString(string.Empty); @@ -47,13 +50,14 @@ namespace WindreamHub.Legacy.Client.Routes query["parameter.item.name"] = item_name; if (flags != null && flags.Length > 0) - query["parameter.flags"] = string.Join(",", flags); + query["parameter.flags"] = string.Join(",", flags.Select(flag => (int)flag)); if (stream_identity != null) query["parameter.stream.__identity"] = stream_identity.ToString(); + + - return await FetchAsync(route: "/Upload", method: HttpMethod.Post, body: fileContent) - .ThenAsync(res => res.Simplify()); + return await FetchAsync(route: $"/Upload?{query}", method: HttpMethod.Post, body: fileContent).ThenAsync(res => res.Simplify()); } } } diff --git a/src/WindreamHub.Legacy.Client/WindreamHub.Legacy.Client.csproj b/src/WindreamHub.Legacy.Client/WindreamHub.Legacy.Client.csproj index 263970f..b0cfc46 100644 --- a/src/WindreamHub.Legacy.Client/WindreamHub.Legacy.Client.csproj +++ b/src/WindreamHub.Legacy.Client/WindreamHub.Legacy.Client.csproj @@ -85,6 +85,7 @@ +