From 39e78821cf5fa2e272a9b3fbe4d40acb9128312d Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Fri, 13 Sep 2024 00:40:06 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20Dokumenterstellungs-Methoden=20zu=20Doc?= =?UTF-8?q?umentsRouteService=20hinzugef=C3=BCgt=20und=20Modelle=20aktuali?= =?UTF-8?q?siert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Zwei `Create`-Methoden in `DocumentsRouteService` hinzugefügt, um die Dokumentenerstellung über HTTP-POST-Anfragen zu ermöglichen. - `int`-Felder im `DocCreateBody`-Modell in `int?` umgewandelt, um mögliche Nullwerte vom Server zu berücksichtigen. - Die neue Dokumenterstellungsfunktion in WindreamClientService integriert. --- .../Models/Authentication/ErrorDetails.cs | 2 +- .../Models/Authentication/ValidationResponse.cs | 2 +- .../Models/Documents/Request/DocCreateBody.cs | 2 +- .../Models/Documents/Request/ObjectType.cs | 2 +- .../Models/Documents/Response/Attribute.cs | 10 +++++----- .../Models/Documents/Response/Error.cs | 2 +- .../Models/Documents/Response/Item.cs | 4 ++-- .../Models/Documents/Response/ObjectType.cs | 2 +- .../Documents/Response/ParentWindreamObject.cs | 2 +- .../Models/Documents/Response/VectorDetails.cs | 2 +- .../Models/ModelExtensions.cs | 9 ++++++++- .../Models/Shared/ErrorItem.cs | 4 ++-- .../Models/SystemDetails/SystemDetails.cs | 2 +- .../Routes/DocumentsRouteService.cs | 13 +++++++++++++ .../WindreamClientService.cs | 4 ++-- 15 files changed, 41 insertions(+), 21 deletions(-) diff --git a/src/WindreamHub.Legacy.Client/Models/Authentication/ErrorDetails.cs b/src/WindreamHub.Legacy.Client/Models/Authentication/ErrorDetails.cs index f626910..256f1fc 100644 --- a/src/WindreamHub.Legacy.Client/Models/Authentication/ErrorDetails.cs +++ b/src/WindreamHub.Legacy.Client/Models/Authentication/ErrorDetails.cs @@ -6,6 +6,6 @@ namespace WindreamHub.Legacy.Client.Models.Authentication { public ErrorItem Item { get; set; } public string Message { get; set; } - public int ErrorCode { get; set; } + public int? ErrorCode { get; set; } } } \ No newline at end of file diff --git a/src/WindreamHub.Legacy.Client/Models/Authentication/ValidationResponse.cs b/src/WindreamHub.Legacy.Client/Models/Authentication/ValidationResponse.cs index 1603a1e..22cdb4f 100644 --- a/src/WindreamHub.Legacy.Client/Models/Authentication/ValidationResponse.cs +++ b/src/WindreamHub.Legacy.Client/Models/Authentication/ValidationResponse.cs @@ -4,7 +4,7 @@ namespace WindreamHub.Legacy.Client.Models.Authentication { public class ValidationResponse { - public int UserID { get; set; } + public int? UserID { get; set; } public string UserName { get; set; } public string FullUserName { get; set; } public bool IsValidUser { get; set; } diff --git a/src/WindreamHub.Legacy.Client/Models/Documents/Request/DocCreateBody.cs b/src/WindreamHub.Legacy.Client/Models/Documents/Request/DocCreateBody.cs index e8608be..0880e28 100644 --- a/src/WindreamHub.Legacy.Client/Models/Documents/Request/DocCreateBody.cs +++ b/src/WindreamHub.Legacy.Client/Models/Documents/Request/DocCreateBody.cs @@ -4,6 +4,6 @@ { public Item Item { get; set; } public bool CreateFolder { get; set; } - public int ResponseDetails { get; set; } + public int? ResponseDetails { get; set; } } } \ No newline at end of file diff --git a/src/WindreamHub.Legacy.Client/Models/Documents/Request/ObjectType.cs b/src/WindreamHub.Legacy.Client/Models/Documents/Request/ObjectType.cs index 585bb05..76f6131 100644 --- a/src/WindreamHub.Legacy.Client/Models/Documents/Request/ObjectType.cs +++ b/src/WindreamHub.Legacy.Client/Models/Documents/Request/ObjectType.cs @@ -2,7 +2,7 @@ { public class ObjectType { - public int Id { get; set; } + public int? Id { get; set; } public string Name { get; set; } } } \ No newline at end of file diff --git a/src/WindreamHub.Legacy.Client/Models/Documents/Response/Attribute.cs b/src/WindreamHub.Legacy.Client/Models/Documents/Response/Attribute.cs index 2e06d91..e157d2a 100644 --- a/src/WindreamHub.Legacy.Client/Models/Documents/Response/Attribute.cs +++ b/src/WindreamHub.Legacy.Client/Models/Documents/Response/Attribute.cs @@ -5,17 +5,17 @@ public string Name { get; set; } public string DisplayName { get; set; } public object Value { get; set; } - public int Type { get; set; } - public int UnderlyingType { get; set; } + public int? Type { get; set; } + public int? UnderlyingType { get; set; } public string Column { get; set; } public bool IsSystem { get; set; } public bool IsSortable { get; set; } public VectorDetails VectorDetails { get; set; } public TypeSpecificDetails TypeSpecificDetails { get; set; } - public int MaxSize { get; set; } + public int? MaxSize { get; set; } public bool AlwaysModifiable { get; set; } - public int PreDigits { get; set; } - public int PostDigits { get; set; } + public int? PreDigits { get; set; } + public int? PostDigits { get; set; } public bool IsFulltext { get; set; } } } \ No newline at end of file diff --git a/src/WindreamHub.Legacy.Client/Models/Documents/Response/Error.cs b/src/WindreamHub.Legacy.Client/Models/Documents/Response/Error.cs index ab9b3a6..4cfa1c3 100644 --- a/src/WindreamHub.Legacy.Client/Models/Documents/Response/Error.cs +++ b/src/WindreamHub.Legacy.Client/Models/Documents/Response/Error.cs @@ -6,6 +6,6 @@ namespace WindreamHub.Legacy.Client.Models.Documents.Response { public ErrorItem Item { get; set; } public string Message { get; set; } - public int ErrorCode { get; set; } + public int? ErrorCode { get; set; } } } \ No newline at end of file diff --git a/src/WindreamHub.Legacy.Client/Models/Documents/Response/Item.cs b/src/WindreamHub.Legacy.Client/Models/Documents/Response/Item.cs index 49f1e26..0f2b969 100644 --- a/src/WindreamHub.Legacy.Client/Models/Documents/Response/Item.cs +++ b/src/WindreamHub.Legacy.Client/Models/Documents/Response/Item.cs @@ -7,9 +7,9 @@ namespace WindreamHub.Legacy.Client.Models.Documents.Response public List Attributes { get; set; } public ObjectType ObjectType { get; set; } public ParentWindreamObject ParentWindreamObject { get; set; } - public int Entity { get; set; } + public int? Entity { get; set; } public string LocationComplete { get; set; } - public int Id { get; set; } + public int? Id { get; set; } public string Location { get; set; } public string Name { get; set; } } diff --git a/src/WindreamHub.Legacy.Client/Models/Documents/Response/ObjectType.cs b/src/WindreamHub.Legacy.Client/Models/Documents/Response/ObjectType.cs index 0f8e879..6d4f649 100644 --- a/src/WindreamHub.Legacy.Client/Models/Documents/Response/ObjectType.cs +++ b/src/WindreamHub.Legacy.Client/Models/Documents/Response/ObjectType.cs @@ -2,7 +2,7 @@ { public class ObjectType { - public int Id { get; set; } + public int? Id { get; set; } public string Name { get; set; } } } \ No newline at end of file diff --git a/src/WindreamHub.Legacy.Client/Models/Documents/Response/ParentWindreamObject.cs b/src/WindreamHub.Legacy.Client/Models/Documents/Response/ParentWindreamObject.cs index 0d788a2..847b427 100644 --- a/src/WindreamHub.Legacy.Client/Models/Documents/Response/ParentWindreamObject.cs +++ b/src/WindreamHub.Legacy.Client/Models/Documents/Response/ParentWindreamObject.cs @@ -3,7 +3,7 @@ public class ParentWindreamObject { public string LocationComplete { get; set; } - public int Id { get; set; } + public int? Id { get; set; } public string Location { get; set; } public string Name { get; set; } } diff --git a/src/WindreamHub.Legacy.Client/Models/Documents/Response/VectorDetails.cs b/src/WindreamHub.Legacy.Client/Models/Documents/Response/VectorDetails.cs index e048a47..a508d9d 100644 --- a/src/WindreamHub.Legacy.Client/Models/Documents/Response/VectorDetails.cs +++ b/src/WindreamHub.Legacy.Client/Models/Documents/Response/VectorDetails.cs @@ -2,6 +2,6 @@ { public class VectorDetails { - public int EntriesLimit { get; set; } + public int? EntriesLimit { get; set; } } } \ No newline at end of file diff --git a/src/WindreamHub.Legacy.Client/Models/ModelExtensions.cs b/src/WindreamHub.Legacy.Client/Models/ModelExtensions.cs index 7164799..93eeaf2 100644 --- a/src/WindreamHub.Legacy.Client/Models/ModelExtensions.cs +++ b/src/WindreamHub.Legacy.Client/Models/ModelExtensions.cs @@ -4,6 +4,7 @@ using System.Net.Http; using System.Threading; using System.Threading.Tasks; using Newtonsoft.Json; +using System.Text; namespace WindreamHub.Legacy.Client.Models { @@ -91,6 +92,12 @@ namespace WindreamHub.Legacy.Client.Models }); } - public static string Stringify(this object model) => JsonConvert.SerializeObject(model); + public static string Serialize(this object model) => JsonConvert.SerializeObject(model); + + public static HttpContent ToContent(this string json, Encoding encoding = null, string mediaType = "application/json") + => new StringContent(json, encoding ?? Encoding.UTF8, mediaType); + + public static HttpContent Stringify(this object model, Encoding encoding = null, string mediaType = "application/json") + => model.Serialize().ToContent(encoding ?? Encoding.UTF8, mediaType); } } \ No newline at end of file diff --git a/src/WindreamHub.Legacy.Client/Models/Shared/ErrorItem.cs b/src/WindreamHub.Legacy.Client/Models/Shared/ErrorItem.cs index 5eb4793..dc4f3b3 100644 --- a/src/WindreamHub.Legacy.Client/Models/Shared/ErrorItem.cs +++ b/src/WindreamHub.Legacy.Client/Models/Shared/ErrorItem.cs @@ -2,8 +2,8 @@ { public class ErrorItem { - public int Entity { get; set; } - public int Id { get; set; } + public int? Entity { get; set; } + public int? Id { get; set; } public string Location { get; set; } public string Name { get; set; } } diff --git a/src/WindreamHub.Legacy.Client/Models/SystemDetails/SystemDetails.cs b/src/WindreamHub.Legacy.Client/Models/SystemDetails/SystemDetails.cs index af8f525..bd87487 100644 --- a/src/WindreamHub.Legacy.Client/Models/SystemDetails/SystemDetails.cs +++ b/src/WindreamHub.Legacy.Client/Models/SystemDetails/SystemDetails.cs @@ -8,6 +8,6 @@ public string DefaultDomain { get; set; } - public int AuthenticationModes { get; set; } + public int? AuthenticationModes { get; set; } } } \ 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 ccb9e25..030bf8a 100644 --- a/src/WindreamHub.Legacy.Client/Routes/DocumentsRouteService.cs +++ b/src/WindreamHub.Legacy.Client/Routes/DocumentsRouteService.cs @@ -1,6 +1,11 @@ using Microsoft.Extensions.Options; using System.Net; using System.Net.Http; +using DigitalData.Core.Legacy.Client; +using System.Threading.Tasks; +using WindreamHub.Legacy.Client.Models; +using WindreamHub.Legacy.Client.Models.Documents.Response; +using WindreamHub.Legacy.Client.Models.Documents.Request; namespace WindreamHub.Legacy.Client.Routes { @@ -9,5 +14,13 @@ namespace WindreamHub.Legacy.Client.Routes public DocumentsRouteService(HttpClient client, CookieContainer cookieContainer, IOptions clientOptions) : base(client, cookieContainer, clientOptions) { } + + public async Task> Create(HttpContent docCreateBody) + => await FetchAsync(route: "/Create", method: HttpMethod.Post, body: docCreateBody) + .ThenAsync(res => res.Simplify()); + + public async Task> Create(DocCreateBody docCreateBody) + => await FetchAsync(route: "/Create", method: HttpMethod.Post, body: docCreateBody.Stringify()) + .ThenAsync(res => res.Simplify()); } } \ No newline at end of file diff --git a/src/WindreamHub.Legacy.Client/WindreamClientService.cs b/src/WindreamHub.Legacy.Client/WindreamClientService.cs index 201dc44..7e423fa 100644 --- a/src/WindreamHub.Legacy.Client/WindreamClientService.cs +++ b/src/WindreamHub.Legacy.Client/WindreamClientService.cs @@ -13,13 +13,13 @@ namespace WindreamHub.Legacy.Client { public class WindreamClientService : HttpClientService { - public WindreamClientService(SubscriptionsRouteService subscriptions, SystemDetailsRouteService systemDetails, AuthenticationRouteService authentication, - HttpClient client, CookieContainer cookieContainer, IOptions clientOptions) : + public WindreamClientService(SubscriptionsRouteService subscriptions, SystemDetailsRouteService systemDetails, AuthenticationRouteService authentication, DocumentsRouteService documents, HttpClient client, CookieContainer cookieContainer, IOptions clientOptions) : base(client, cookieContainer, clientOptions) { Subscriptions = subscriptions; SystemDetails = systemDetails; Authentication = authentication; + Documents = documents; } public SubscriptionsRouteService Subscriptions { get; }