From 0933f8b9ec43eb11e86d398e0c2ec8bccb487663 Mon Sep 17 00:00:00 2001 From: Henning Normann Date: Mon, 24 Feb 2025 14:03:31 +0100 Subject: [PATCH 1/6] Format watermark using caller's language --- src/Storage/Controllers/ContentOnDemandController.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Storage/Controllers/ContentOnDemandController.cs b/src/Storage/Controllers/ContentOnDemandController.cs index 5eb7dc1f..96e01968 100644 --- a/src/Storage/Controllers/ContentOnDemandController.cs +++ b/src/Storage/Controllers/ContentOnDemandController.cs @@ -184,7 +184,8 @@ public async Task GetFormdataAsPdf([FromRoute] string org, [FromRoute] s mergedDoc.Save(pdfStream); instance.DataValues.TryGetValue("A2ArchRefTs", out string watermark); - watermark = (watermark ?? ((DateTime)instance.Created).ToLocalTime().ToString("dd-MM-yyyy HH:mm:ss", CultureInfo.InvariantCulture)) + string timestampFormat = language == "en" ? "MM/dd/yyyy hh:mm:ss tt" : "dd.MM.yyyy HH:mm:ss"; + watermark = (watermark ?? ((DateTime)instance.Created).ToLocalTime().ToString(timestampFormat, CultureInfo.InvariantCulture)) + $" AR{instance.DataValues["A2ArchRef"]}"; using var finalPdfDocument = PdfReader.Open(pdfStream, PdfDocumentOpenMode.Modify); From 69629bae23c45d90799ac1fa9ea91d0cf11724d4 Mon Sep 17 00:00:00 2001 From: Henning Normann Date: Mon, 24 Feb 2025 15:19:35 +0100 Subject: [PATCH 2/6] Removed trying to get watermark from instance --- src/Storage/Controllers/ContentOnDemandController.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Storage/Controllers/ContentOnDemandController.cs b/src/Storage/Controllers/ContentOnDemandController.cs index 96e01968..cffe907f 100644 --- a/src/Storage/Controllers/ContentOnDemandController.cs +++ b/src/Storage/Controllers/ContentOnDemandController.cs @@ -183,9 +183,8 @@ public async Task GetFormdataAsPdf([FromRoute] string org, [FromRoute] s MemoryStream pdfStream = new(); mergedDoc.Save(pdfStream); - instance.DataValues.TryGetValue("A2ArchRefTs", out string watermark); string timestampFormat = language == "en" ? "MM/dd/yyyy hh:mm:ss tt" : "dd.MM.yyyy HH:mm:ss"; - watermark = (watermark ?? ((DateTime)instance.Created).ToLocalTime().ToString(timestampFormat, CultureInfo.InvariantCulture)) + string watermark = ((DateTime)instance.Created).ToLocalTime().ToString(timestampFormat, CultureInfo.InvariantCulture) + $" AR{instance.DataValues["A2ArchRef"]}"; using var finalPdfDocument = PdfReader.Open(pdfStream, PdfDocumentOpenMode.Modify); From b35f343a9cfef2ce2200fd4c9345e32d036fd81a Mon Sep 17 00:00:00 2001 From: Henning Normann Date: Mon, 24 Feb 2025 16:38:02 +0100 Subject: [PATCH 3/6] Format watermark using user's language --- src/Storage/Controllers/ContentOnDemandController.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Storage/Controllers/ContentOnDemandController.cs b/src/Storage/Controllers/ContentOnDemandController.cs index cffe907f..72e7e010 100644 --- a/src/Storage/Controllers/ContentOnDemandController.cs +++ b/src/Storage/Controllers/ContentOnDemandController.cs @@ -183,8 +183,18 @@ public async Task GetFormdataAsPdf([FromRoute] string org, [FromRoute] s MemoryStream pdfStream = new(); mergedDoc.Save(pdfStream); + DateTime created; + if (instance.DataValues.TryGetValue("A2ArchRefTs", out string a2ArchRefTs)) + { + created = DateTime.Parse(a2ArchRefTs); + } + else + { + created = ((DateTime)instance.Created).ToLocalTime(); + } + string timestampFormat = language == "en" ? "MM/dd/yyyy hh:mm:ss tt" : "dd.MM.yyyy HH:mm:ss"; - string watermark = ((DateTime)instance.Created).ToLocalTime().ToString(timestampFormat, CultureInfo.InvariantCulture) + string watermark = created.ToString(timestampFormat, CultureInfo.InvariantCulture) + $" AR{instance.DataValues["A2ArchRef"]}"; using var finalPdfDocument = PdfReader.Open(pdfStream, PdfDocumentOpenMode.Modify); From 50e071abb9f51b725964567cf9ed8c6fef24d314 Mon Sep 17 00:00:00 2001 From: Henning Normann Date: Mon, 24 Feb 2025 17:15:52 +0100 Subject: [PATCH 4/6] Format watermark using user's language --- src/Storage/Controllers/DataController.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Storage/Controllers/DataController.cs b/src/Storage/Controllers/DataController.cs index 32c02042..30c48656 100644 --- a/src/Storage/Controllers/DataController.cs +++ b/src/Storage/Controllers/DataController.cs @@ -153,7 +153,7 @@ public async Task> Delete(int instanceOwnerPartyId, Gu /// The id of the instance that the data element is associated with. /// The id of the data element to retrieve. /// The data file as a stream. - [Authorize(Policy = AuthzConstants.POLICY_INSTANCE_READ)] + ////[Authorize(Policy = AuthzConstants.POLICY_INSTANCE_READ)] [HttpGet("data/{dataGuid:guid}")] [RequestSizeLimit(RequestSizeLimit)] [ProducesResponseType(StatusCodes.Status200OK)] @@ -162,6 +162,7 @@ public async Task> Delete(int instanceOwnerPartyId, Gu [Produces("application/json")] public async Task Get(int instanceOwnerPartyId, Guid instanceGuid, Guid dataGuid) { + Console.WriteLine("Lang: " + LanguageHelper.GetCurrentUserLanguage(Request)); if (instanceOwnerPartyId == 0) { return BadRequest("Missing parameter value: instanceOwnerPartyId can not be empty"); From 61898806867accfa34c4f9324f6b75f240ce87f5 Mon Sep 17 00:00:00 2001 From: Henning Normann Date: Mon, 24 Feb 2025 17:36:54 +0100 Subject: [PATCH 5/6] Format watermark using user's language --- src/Storage/Controllers/ContentOnDemandController.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Storage/Controllers/ContentOnDemandController.cs b/src/Storage/Controllers/ContentOnDemandController.cs index 72e7e010..04aba04b 100644 --- a/src/Storage/Controllers/ContentOnDemandController.cs +++ b/src/Storage/Controllers/ContentOnDemandController.cs @@ -186,7 +186,7 @@ public async Task GetFormdataAsPdf([FromRoute] string org, [FromRoute] s DateTime created; if (instance.DataValues.TryGetValue("A2ArchRefTs", out string a2ArchRefTs)) { - created = DateTime.Parse(a2ArchRefTs); + created = DateTime.ParseExact(a2ArchRefTs, "dd-MM-yyyy HH:mm:ss", CultureInfo.InvariantCulture); } else { From 6fa7f5a07b4f3d07a596c7bc259b9fce017a6a40 Mon Sep 17 00:00:00 2001 From: Henning Normann Date: Tue, 25 Feb 2025 08:49:28 +0100 Subject: [PATCH 6/6] Removed debug --- src/Storage/Controllers/DataController.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Storage/Controllers/DataController.cs b/src/Storage/Controllers/DataController.cs index 30c48656..32c02042 100644 --- a/src/Storage/Controllers/DataController.cs +++ b/src/Storage/Controllers/DataController.cs @@ -153,7 +153,7 @@ public async Task> Delete(int instanceOwnerPartyId, Gu /// The id of the instance that the data element is associated with. /// The id of the data element to retrieve. /// The data file as a stream. - ////[Authorize(Policy = AuthzConstants.POLICY_INSTANCE_READ)] + [Authorize(Policy = AuthzConstants.POLICY_INSTANCE_READ)] [HttpGet("data/{dataGuid:guid}")] [RequestSizeLimit(RequestSizeLimit)] [ProducesResponseType(StatusCodes.Status200OK)] @@ -162,7 +162,6 @@ public async Task> Delete(int instanceOwnerPartyId, Gu [Produces("application/json")] public async Task Get(int instanceOwnerPartyId, Guid instanceGuid, Guid dataGuid) { - Console.WriteLine("Lang: " + LanguageHelper.GetCurrentUserLanguage(Request)); if (instanceOwnerPartyId == 0) { return BadRequest("Missing parameter value: instanceOwnerPartyId can not be empty");