From 55b01cf3962eb79b190111b38fca101246cd4eb9 Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Wed, 7 May 2025 12:04:01 +0200 Subject: [PATCH] Refactor command records and simplify document handling - Updated `ReceiverGetOrCreateCommand` to include a required `IEnumerable`. - Modified `DocumentCreateCommand` to remove `DataAsByte` and enforce a required `DataAsBase64` property with immutability. - Cleaned up SQL command formatting in `EnvelopeReceiverAddReadSQL`. - Simplified document validation logic in `EnvelopeReceiverController` by removing redundant checks. - Changed hardcoded connection string to a variable `_cnnStr` for improved security and flexibility. --- .../Commands/Create/CreateEnvelopeReceiverDtos.cs | 8 +++----- .../SQL/EnvelopeReceiverAddReadSQL.cs | 11 +++++------ .../Controllers/EnvelopeReceiverController.cs | 14 +------------- 3 files changed, 9 insertions(+), 24 deletions(-) diff --git a/EnvelopeGenerator.Application/EnvelopeReceivers/Commands/Create/CreateEnvelopeReceiverDtos.cs b/EnvelopeGenerator.Application/EnvelopeReceivers/Commands/Create/CreateEnvelopeReceiverDtos.cs index 77aa2869..d26354cd 100644 --- a/EnvelopeGenerator.Application/EnvelopeReceivers/Commands/Create/CreateEnvelopeReceiverDtos.cs +++ b/EnvelopeGenerator.Application/EnvelopeReceivers/Commands/Create/CreateEnvelopeReceiverDtos.cs @@ -36,14 +36,12 @@ public record ReceiverGetOrCreateCommand([Required] IEnumerable Signa /// /// DTO zum Erstellen eines Dokuments. /// -/// -/// Die Dokumentdaten im Byte-Array-Format. Wird verwendet, wenn das Dokument als Roh-Binärdaten bereitgestellt wird. -/// -public record DocumentCreateCommand(byte[]? DataAsByte = null) +public record DocumentCreateCommand() { /// /// Die Dokumentdaten im Base64-String-Format. Wird verwendet, wenn das Dokument als Base64-codierter String bereitgestellt wird. /// - public string? DataAsBase64 { get; set; } + [Required] + public required string DataAsBase64 { get; init; } }; #endregion \ No newline at end of file diff --git a/EnvelopeGenerator.Application/SQL/EnvelopeReceiverAddReadSQL.cs b/EnvelopeGenerator.Application/SQL/EnvelopeReceiverAddReadSQL.cs index b389a4c4..c065accd 100644 --- a/EnvelopeGenerator.Application/SQL/EnvelopeReceiverAddReadSQL.cs +++ b/EnvelopeGenerator.Application/SQL/EnvelopeReceiverAddReadSQL.cs @@ -13,15 +13,14 @@ public class EnvelopeReceiverAddReadSQL : ISQL /// /// public string Raw => @" - USE [DD_ECM] DECLARE @OUT_RECEIVER_ID int EXEC [dbo].[PRSIG_API_CREATE_RECEIVER] - @ENV_UID = @ENV_UID, - @EMAIL_ADRESS = @EMAIL_ADRESS, - @SALUTATION = @SALUTATION, - @PHONE = @PHONE, - @OUT_RECEIVER_ID = @OUT_RECEIVER_ID OUTPUT + @ENV_UID, + @EMAIL_ADRESS, + @SALUTATION, + @PHONE, + @OUT_RECEIVER_ID OUTPUT SELECT TOP(1) * FROM TBSIG_ENVELOPE_RECEIVER diff --git a/EnvelopeGenerator.GeneratorAPI/Controllers/EnvelopeReceiverController.cs b/EnvelopeGenerator.GeneratorAPI/Controllers/EnvelopeReceiverController.cs index b007e6d6..62127f4a 100644 --- a/EnvelopeGenerator.GeneratorAPI/Controllers/EnvelopeReceiverController.cs +++ b/EnvelopeGenerator.GeneratorAPI/Controllers/EnvelopeReceiverController.cs @@ -221,16 +221,6 @@ public class EnvelopeReceiverController : ControllerBase #endregion #region Add document - if(request.Document.DataAsBase64 is null) - if (request.Document.DataAsByte is null) - return BadRequest("No document data is found"); - else - request.Document.DataAsBase64 = Convert.ToBase64String(request.Document.DataAsByte); - else if (request.Document.DataAsByte is not null) - return BadRequest("Document data cannot be assigned as both byte data and base64 string."); - else if (!IsBase64String(request.Document.DataAsBase64)) - return BadRequest("Document data is not a base64 string"); - var document = await _documentExecutor.CreateDocumentAsync(request.Document.DataAsBase64, envelope.Uuid, cancel); if(document is null) @@ -279,8 +269,6 @@ public class EnvelopeReceiverController : ControllerBase #endregion #region Create history - string connectionString = "Server=YOUR_SERVER;Database=YOUR_DATABASE;Trusted_Connection=True;"; - string sql_hist = @" USE [DD_ECM] @@ -294,7 +282,7 @@ public class EnvelopeReceiverController : ControllerBase SELECT @OUT_SUCCESS as [@OUT_SUCCESS];"; - using (SqlConnection conn = new(connectionString)) + using (SqlConnection conn = new(_cnnStr)) { conn.Open();