From 6d2ec4cc0b8762f6c4234d5c19c450a79dba985f Mon Sep 17 00:00:00 2001 From: TekH Date: Mon, 23 Feb 2026 15:54:52 +0100 Subject: [PATCH 01/11] Update DI and Logging packages to v8, adjust binding redirects Upgraded Microsoft.Extensions.DependencyInjection.Abstractions to 8.0.2 and Microsoft.Extensions.Logging.Abstractions to 8.0.3 in project references and packages.config. Updated related binding redirects in App.config. Also modified the solution file to change the build configuration for project {83ED2617-B398-4859-8F59-B38F8807E83E} so Debug|Any CPU now maps to Release|Any CPU. Adjusted System.Memory and System.Buffers binding redirect ranges. --- EnvelopeGenerator.Service/App.config | 8 ++++---- .../EnvelopeGenerator.Service.vbproj | 8 ++++---- EnvelopeGenerator.Service/packages.config | 4 ++-- EnvelopeGenerator.sln | 4 ++-- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/EnvelopeGenerator.Service/App.config b/EnvelopeGenerator.Service/App.config index 2d238195..445dd0b3 100644 --- a/EnvelopeGenerator.Service/App.config +++ b/EnvelopeGenerator.Service/App.config @@ -23,7 +23,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -67,7 +67,7 @@ - + diff --git a/EnvelopeGenerator.Service/EnvelopeGenerator.Service.vbproj b/EnvelopeGenerator.Service/EnvelopeGenerator.Service.vbproj index 061d21a6..03df4c62 100644 --- a/EnvelopeGenerator.Service/EnvelopeGenerator.Service.vbproj +++ b/EnvelopeGenerator.Service/EnvelopeGenerator.Service.vbproj @@ -181,11 +181,11 @@ ..\packages\Microsoft.Extensions.DependencyInjection.7.0.0\lib\net462\Microsoft.Extensions.DependencyInjection.dll - - ..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.7.0.0\lib\net462\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + ..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.8.0.2\lib\net462\Microsoft.Extensions.DependencyInjection.Abstractions.dll - - ..\packages\Microsoft.Extensions.Logging.Abstractions.7.0.0\lib\net462\Microsoft.Extensions.Logging.Abstractions.dll + + ..\packages\Microsoft.Extensions.Logging.Abstractions.8.0.3\lib\net462\Microsoft.Extensions.Logging.Abstractions.dll ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll diff --git a/EnvelopeGenerator.Service/packages.config b/EnvelopeGenerator.Service/packages.config index 571ea90c..6ccec828 100644 --- a/EnvelopeGenerator.Service/packages.config +++ b/EnvelopeGenerator.Service/packages.config @@ -13,8 +13,8 @@ - - + + diff --git a/EnvelopeGenerator.sln b/EnvelopeGenerator.sln index f55cdd56..5b4ef0bc 100644 --- a/EnvelopeGenerator.sln +++ b/EnvelopeGenerator.sln @@ -53,8 +53,8 @@ Global {5E0E17C0-FF5A-4246-BF87-1ADD85376A27}.Debug|Any CPU.Build.0 = Debug|Any CPU {5E0E17C0-FF5A-4246-BF87-1ADD85376A27}.Release|Any CPU.ActiveCfg = Debug|Any CPU {5E0E17C0-FF5A-4246-BF87-1ADD85376A27}.Release|Any CPU.Build.0 = Debug|Any CPU - {83ED2617-B398-4859-8F59-B38F8807E83E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {83ED2617-B398-4859-8F59-B38F8807E83E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {83ED2617-B398-4859-8F59-B38F8807E83E}.Debug|Any CPU.ActiveCfg = Release|Any CPU + {83ED2617-B398-4859-8F59-B38F8807E83E}.Debug|Any CPU.Build.0 = Release|Any CPU {83ED2617-B398-4859-8F59-B38F8807E83E}.Release|Any CPU.ActiveCfg = Debug|Any CPU {83ED2617-B398-4859-8F59-B38F8807E83E}.Release|Any CPU.Build.0 = Debug|Any CPU {4F32A98D-E6F0-4A09-BD97-1CF26107E837}.Debug|Any CPU.ActiveCfg = Debug|Any CPU From e0aa963184843977af98017f235a2023555aea0e Mon Sep 17 00:00:00 2001 From: TekH Date: Wed, 4 Mar 2026 14:18:28 +0100 Subject: [PATCH 02/11] Add IEnvelope interface and IsReadAndConfirm extension Introduced the IEnvelope interface with an EnvelopeTypeId property in the new EnvelopeGenerator.Domain.Interfaces namespace. Added the EnvelopeExtensions static class with an IsReadAndConfirm extension method to check if EnvelopeTypeId equals 2. --- EnvelopeGenerator.Domain/Interfaces/IEnvelope.cs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 EnvelopeGenerator.Domain/Interfaces/IEnvelope.cs diff --git a/EnvelopeGenerator.Domain/Interfaces/IEnvelope.cs b/EnvelopeGenerator.Domain/Interfaces/IEnvelope.cs new file mode 100644 index 00000000..bdc709c6 --- /dev/null +++ b/EnvelopeGenerator.Domain/Interfaces/IEnvelope.cs @@ -0,0 +1,15 @@ +namespace EnvelopeGenerator.Domain.Interfaces +{ + public interface IEnvelope + { + int? EnvelopeTypeId { get; set; } + } + + public static class EnvelopeExtensions + { + public static bool IsReadAndConfirm(this IEnvelope envelope) + { + return envelope.EnvelopeTypeId == 2; + } + } +} \ No newline at end of file From 2d0c08b2cea81119c597b583adda765defe182b6 Mon Sep 17 00:00:00 2001 From: TekH Date: Wed, 4 Mar 2026 14:19:02 +0100 Subject: [PATCH 03/11] Implement IEnvelope and update Envelope.ReadOnly property Envelope now implements the IEnvelope interface. The ReadOnly property is marked as [Obsolete] and delegates to the IsReadAndConfirm extension method instead of directly checking EnvelopeTypeId. Added a using directive for EnvelopeGenerator.Domain.Interfaces. --- EnvelopeGenerator.Domain/Entities/Envelope.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/EnvelopeGenerator.Domain/Entities/Envelope.cs b/EnvelopeGenerator.Domain/Entities/Envelope.cs index 21e52a9d..5ba90338 100644 --- a/EnvelopeGenerator.Domain/Entities/Envelope.cs +++ b/EnvelopeGenerator.Domain/Entities/Envelope.cs @@ -5,6 +5,7 @@ using System.ComponentModel.DataAnnotations.Schema; using EnvelopeGenerator.Domain.Constants; using Newtonsoft.Json; using EnvelopeGenerator.Domain.Interfaces.Auditing; +using EnvelopeGenerator.Domain.Interfaces; #if NETFRAMEWORK using System.Collections.Generic; using System.Linq; @@ -13,7 +14,7 @@ using System.Linq; namespace EnvelopeGenerator.Domain.Entities { [Table("TBSIG_ENVELOPE", Schema = "dbo")] - public class Envelope : IHasAddedWhen, IHasChangedWhen + public class Envelope : IHasAddedWhen, IHasChangedWhen, IEnvelope { public Envelope() { @@ -106,7 +107,8 @@ namespace EnvelopeGenerator.Domain.Entities [JsonIgnore] [NotMapped] - public bool ReadOnly => EnvelopeTypeId == 2; + [Obsolete("Use EnvelopeGenerator.Domain.Interfaces.EnvelopeExtensions.IsReadAndConfirm extension method instead.")] + public bool ReadOnly => this.IsReadAndConfirm(); [Column("CERTIFICATION_TYPE")] public int? CertificationType { get; set; } From 86c99596c4e16720bea8dd5c7af479237fb3ddc3 Mon Sep 17 00:00:00 2001 From: TekH Date: Wed, 4 Mar 2026 14:19:11 +0100 Subject: [PATCH 04/11] Implement IEnvelope interface in EnvelopeDto EnvelopeDto now implements the IEnvelope interface, enabling it to be used wherever IEnvelope is required. No other modifications were made to the class. --- EnvelopeGenerator.Application/Common/Dto/EnvelopeDto.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/EnvelopeGenerator.Application/Common/Dto/EnvelopeDto.cs b/EnvelopeGenerator.Application/Common/Dto/EnvelopeDto.cs index 029d621a..01c24251 100644 --- a/EnvelopeGenerator.Application/Common/Dto/EnvelopeDto.cs +++ b/EnvelopeGenerator.Application/Common/Dto/EnvelopeDto.cs @@ -2,6 +2,7 @@ using DigitalData.UserManager.Application.DTOs.User; using EnvelopeGenerator.Domain.Constants; using EnvelopeGenerator.Domain.Entities; +using EnvelopeGenerator.Domain.Interfaces; using Microsoft.AspNetCore.Mvc; namespace EnvelopeGenerator.Application.Common.Dto; @@ -10,7 +11,7 @@ namespace EnvelopeGenerator.Application.Common.Dto; /// /// [ApiExplorerSettings(IgnoreApi = true)] -public record EnvelopeDto +public record EnvelopeDto : IEnvelope { /// /// From f44643aa3ecc8ecb8b6ef1195ccfb629311ff2ff Mon Sep 17 00:00:00 2001 From: TekH Date: Wed, 4 Mar 2026 15:02:04 +0100 Subject: [PATCH 05/11] Add dynamic email placeholders for confirm/sign workflows Refactored CreatePlaceholders to set email template values based on whether the envelope requires "read and confirm" or signature. Renamed method parameter for clarity and updated usages. Added a TODO for future method unification. Improves email content accuracy for different envelope actions. --- .../Services/EnvelopeMailService.cs | 31 ++++++++++++++++--- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/EnvelopeGenerator.Application/Services/EnvelopeMailService.cs b/EnvelopeGenerator.Application/Services/EnvelopeMailService.cs index 0bfc7a4c..4f73ebff 100644 --- a/EnvelopeGenerator.Application/Services/EnvelopeMailService.cs +++ b/EnvelopeGenerator.Application/Services/EnvelopeMailService.cs @@ -12,6 +12,7 @@ using EnvelopeGenerator.Application.Common.Dto.EnvelopeReceiverReadOnly; using EnvelopeGenerator.Application.Common.Extensions; using EnvelopeGenerator.Application.Common.Interfaces.Services; using MediatR; +using EnvelopeGenerator.Domain.Interfaces; namespace EnvelopeGenerator.Application.Services; @@ -49,14 +50,33 @@ public class EnvelopeMailService : EmailOutService, IEnvelopeMailService _sender = sender; } - private async Task> CreatePlaceholders(string? accessCode = null, EnvelopeReceiverDto? envelopeReceiverDto = null) + private async Task> CreatePlaceholders(string? accessCode = null, EnvelopeReceiverDto? er = null) { + if (er!.Envelope.IsReadAndConfirm()) + { + _placeholders["[SIGNATURE_TYPE]"] = "Lesen und bestätigen"; + _placeholders["[DOCUMENT_PROCESS]"] = string.Empty; + _placeholders["[FINAL_STATUS]"] = "Bestätigung"; + _placeholders["[FINAL_ACTION]"] = "Empfänger bestätigt"; + _placeholders["[REJECTED_BY_OTHERS]"] = "anderen Empfänger abgelehnt!"; + _placeholders["[RECEIVER_ACTION]"] = "bestätigt"; + } + else + { + _placeholders["[SIGNATURE_TYPE]"] = "Signieren"; + _placeholders["[DOCUMENT_PROCESS]"] = " und elektronisch unterschreiben"; + _placeholders["[FINAL_STATUS]"] = "Signatur"; + _placeholders["[FINAL_ACTION]"] = "Vertragspartner unterzeichnet"; + _placeholders["[REJECTED_BY_OTHERS]"] = "anderen Vertragspartner abgelehnt! Ihre notwendige Unterzeichnung wurde verworfen."; + _placeholders["[RECEIVER_ACTION]"] = "unterschrieben"; + } + if (accessCode is not null) _placeholders["[DOCUMENT_ACCESS_CODE]"] = accessCode; - if (envelopeReceiverDto?.Envelope is not null && envelopeReceiverDto.Receiver is not null) + if (er?.Envelope is not null && er.Receiver is not null) { - var erId = (envelopeReceiverDto.Envelope.Uuid, envelopeReceiverDto.Receiver.Signature).ToEnvelopeKey(); + var erId = (er.Envelope.Uuid, er.Receiver.Signature).ToEnvelopeKey(); var sigHost = await _configService.ReadDefaultSignatureHost(); var linkToDoc = $"{sigHost}/EnvelopeKey/{erId}"; _placeholders["[LINK_TO_DOCUMENT]"] = linkToDoc; @@ -66,7 +86,8 @@ public class EnvelopeMailService : EmailOutService, IEnvelopeMailService return _placeholders; } - private async Task> CreatePlaceholders(EnvelopeReceiverReadOnlyDto? readOnlyDto = null) + // TODO: merge the two CreatePlaceholders methods by using a common parameter object containing all the required information to create the place holders. + private async Task> CreatePlaceholders(EnvelopeReceiverReadOnlyDto? readOnlyDto = null) { if (readOnlyDto?.Envelope is not null && readOnlyDto.Receiver is not null) { @@ -124,7 +145,7 @@ public class EnvelopeMailService : EmailOutService, IEnvelopeMailService return acResult.ToFail().Notice(LogLevel.Error, "Therefore, access code cannot be sent"); var accessCode = acResult.Data; - var placeholders = await CreatePlaceholders(accessCode: accessCode, envelopeReceiverDto: dto); + var placeholders = await CreatePlaceholders(accessCode: accessCode, er: dto); // Add optional place holders. if (optionalPlaceholders is not null) From 8fed342dc5b097bfb2a73e3e8b3322f99abf5e39 Mon Sep 17 00:00:00 2001 From: TekH Date: Wed, 4 Mar 2026 15:17:47 +0100 Subject: [PATCH 06/11] Remove [SIGNATURE_TYPE] placeholder from MailParams The [SIGNATURE_TYPE] placeholder and its value ("signieren") were removed from the MailParams section in appsettings.Mail.json. This cleans up unused or unnecessary configuration. --- EnvelopeGenerator.Web/appsettings.Mail.json | 1 - 1 file changed, 1 deletion(-) diff --git a/EnvelopeGenerator.Web/appsettings.Mail.json b/EnvelopeGenerator.Web/appsettings.Mail.json index 61dc2518..22b0e1be 100644 --- a/EnvelopeGenerator.Web/appsettings.Mail.json +++ b/EnvelopeGenerator.Web/appsettings.Mail.json @@ -8,7 +8,6 @@ "MailParams": { "Placeholders": { "[NAME_PORTAL]": "signFlow", - "[SIGNATURE_TYPE]": "signieren", "[REASON]": "" } } From 9a516ab3c94a99a4ce73990779bc9d8c5d6069ca Mon Sep 17 00:00:00 2001 From: TekH Date: Wed, 4 Mar 2026 16:09:40 +0100 Subject: [PATCH 07/11] Update and align NuGet dependencies; drop net7.0 from Web - Downgrade Microsoft.Data.SqlClient to 5.2.2 in Application and Infrastructure projects - Downgrade Microsoft.Extensions.DependencyInjection to 8.0.1 for net8.0 in Application - Remove net7.0 target and related packages from Web project - Upgrade OpenApi and Caching.SqlServer to 8.0.17 (net8.0) and 9.0.6 (net9.0) in Web - Ensures consistent, compatible package versions across solution --- .../EnvelopeGenerator.Application.csproj | 6 ++-- .../EnvelopeGenerator.Infrastructure.csproj | 2 +- .../EnvelopeGenerator.Web.csproj | 35 +++---------------- 3 files changed, 8 insertions(+), 35 deletions(-) diff --git a/EnvelopeGenerator.Application/EnvelopeGenerator.Application.csproj b/EnvelopeGenerator.Application/EnvelopeGenerator.Application.csproj index 0da15ec9..ba181291 100644 --- a/EnvelopeGenerator.Application/EnvelopeGenerator.Application.csproj +++ b/EnvelopeGenerator.Application/EnvelopeGenerator.Application.csproj @@ -37,7 +37,7 @@ - + @@ -80,7 +80,7 @@ - + 7.0.5 @@ -88,7 +88,6 @@ - 8.1.1 @@ -96,7 +95,6 @@ - 8.1.1 diff --git a/EnvelopeGenerator.Infrastructure/EnvelopeGenerator.Infrastructure.csproj b/EnvelopeGenerator.Infrastructure/EnvelopeGenerator.Infrastructure.csproj index f3f03d30..23ff4950 100644 --- a/EnvelopeGenerator.Infrastructure/EnvelopeGenerator.Infrastructure.csproj +++ b/EnvelopeGenerator.Infrastructure/EnvelopeGenerator.Infrastructure.csproj @@ -25,7 +25,7 @@ - + diff --git a/EnvelopeGenerator.Web/EnvelopeGenerator.Web.csproj b/EnvelopeGenerator.Web/EnvelopeGenerator.Web.csproj index fa60b73d..0c02ae64 100644 --- a/EnvelopeGenerator.Web/EnvelopeGenerator.Web.csproj +++ b/EnvelopeGenerator.Web/EnvelopeGenerator.Web.csproj @@ -1,7 +1,7 @@  - net7.0;net8.0;net9.0 + net8.0;net9.0 enable enable EnvelopeGenerator.Web @@ -2093,39 +2093,14 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -2149,8 +2124,8 @@ - - + + From 59d6d25bdd08ce2e7a4c10071039d22d24537168 Mon Sep 17 00:00:00 2001 From: TekH Date: Wed, 4 Mar 2026 16:09:50 +0100 Subject: [PATCH 08/11] Add ChangedWhen property to History entity Added a [NotMapped] ChangedWhen property to the History entity as a wrapper for ActionDate, providing alternative get/set access without affecting the database schema. --- EnvelopeGenerator.Domain/Entities/History.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/EnvelopeGenerator.Domain/Entities/History.cs b/EnvelopeGenerator.Domain/Entities/History.cs index f52700a5..b7a6bc4c 100644 --- a/EnvelopeGenerator.Domain/Entities/History.cs +++ b/EnvelopeGenerator.Domain/Entities/History.cs @@ -37,6 +37,7 @@ namespace EnvelopeGenerator.Domain.Entities [Column("ACTION_DATE", TypeName = "datetime")] public DateTime? ActionDate { get; set; } + [NotMapped] public DateTime? ChangedWhen { get => ActionDate; set => ActionDate = value; } [Column("COMMENT", TypeName = "nvarchar(max)")] From 08299451bbb181401f6fe7041b01b8b77e351981 Mon Sep 17 00:00:00 2001 From: TekH Date: Wed, 4 Mar 2026 16:19:33 +0100 Subject: [PATCH 09/11] Customize email placeholders by envelope action type Added logic to set email template placeholders based on whether the envelope requires "Read and Confirm" or "Sign" actions. Placeholders such as [SIGNATURE_TYPE], [DOCUMENT_PROCESS], [FINAL_STATUS], [FINAL_ACTION], [REJECTED_BY_OTHERS], and [RECEIVER_ACTION] are now dynamically set to reflect the correct process and status, improving the accuracy and clarity of notification emails. --- .../Handlers/SendSignedMailHandler.cs | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/EnvelopeGenerator.Application/Common/Notifications/DocSigned/Handlers/SendSignedMailHandler.cs b/EnvelopeGenerator.Application/Common/Notifications/DocSigned/Handlers/SendSignedMailHandler.cs index 73ae86ba..8b7aa4f1 100644 --- a/EnvelopeGenerator.Application/Common/Notifications/DocSigned/Handlers/SendSignedMailHandler.cs +++ b/EnvelopeGenerator.Application/Common/Notifications/DocSigned/Handlers/SendSignedMailHandler.cs @@ -3,6 +3,7 @@ using DigitalData.EmailProfilerDispatcher.Abstraction.Entities; using EnvelopeGenerator.Application.Common.Configurations; using EnvelopeGenerator.Domain.Entities; using Microsoft.Extensions.Options; +using EnvelopeGenerator.Domain.Interfaces; namespace EnvelopeGenerator.Application.Common.Notifications.DocSigned.Handlers; @@ -45,6 +46,25 @@ public class SendSignedMailHandler : SendMailHandler { "[DOCUMENT_TITLE]", notification.Envelope?.Title ?? string.Empty }, }; + if (notification.Envelope.IsReadAndConfirm()) + { + placeHolders["[SIGNATURE_TYPE]"] = "Lesen und bestätigen"; + placeHolders["[DOCUMENT_PROCESS]"] = string.Empty; + placeHolders["[FINAL_STATUS]"] = "Lesebestätigung"; + placeHolders["[FINAL_ACTION]"] = "Empfänger bestätigt"; + placeHolders["[REJECTED_BY_OTHERS]"] = "anderen Empfänger abgelehnt!"; + placeHolders["[RECEIVER_ACTION]"] = "bestätigt"; + } + else + { + placeHolders["[SIGNATURE_TYPE]"] = "Signieren"; + placeHolders["[DOCUMENT_PROCESS]"] = " und elektronisch unterschreiben"; + placeHolders["[FINAL_STATUS]"] = "Signatur"; + placeHolders["[FINAL_ACTION]"] = "Vertragspartner unterzeichnet"; + placeHolders["[REJECTED_BY_OTHERS]"] = "anderen Vertragspartner abgelehnt! Ihre notwendige Unterzeichnung wurde verworfen."; + placeHolders["[RECEIVER_ACTION]"] = "unterschrieben"; + } + return placeHolders; } } \ No newline at end of file From 8e3c334fa3c6d481cc2c766ba183519d46fcbfd2 Mon Sep 17 00:00:00 2001 From: TekH Date: Wed, 4 Mar 2026 16:19:45 +0100 Subject: [PATCH 10/11] =?UTF-8?q?Update=20final=20status=20to=20'Lesebest?= =?UTF-8?q?=C3=A4tigung'=20for=20read=20confirm?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changed the [FINAL_STATUS] placeholder value from "Bestätigung" to the more specific "Lesebestätigung" when an envelope is read and confirmed, improving clarity in status messaging. --- EnvelopeGenerator.Application/Services/EnvelopeMailService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EnvelopeGenerator.Application/Services/EnvelopeMailService.cs b/EnvelopeGenerator.Application/Services/EnvelopeMailService.cs index 4f73ebff..ad154298 100644 --- a/EnvelopeGenerator.Application/Services/EnvelopeMailService.cs +++ b/EnvelopeGenerator.Application/Services/EnvelopeMailService.cs @@ -56,7 +56,7 @@ public class EnvelopeMailService : EmailOutService, IEnvelopeMailService { _placeholders["[SIGNATURE_TYPE]"] = "Lesen und bestätigen"; _placeholders["[DOCUMENT_PROCESS]"] = string.Empty; - _placeholders["[FINAL_STATUS]"] = "Bestätigung"; + _placeholders["[FINAL_STATUS]"] = "Lesebestätigung"; _placeholders["[FINAL_ACTION]"] = "Empfänger bestätigt"; _placeholders["[REJECTED_BY_OTHERS]"] = "anderen Empfänger abgelehnt!"; _placeholders["[RECEIVER_ACTION]"] = "bestätigt"; From bcc17f6def305716d98a5338d14f6a707af6b00a Mon Sep 17 00:00:00 2001 From: TekH Date: Wed, 4 Mar 2026 16:49:07 +0100 Subject: [PATCH 11/11] Bump version to 3.11.0 in EnvelopeGenerator.Web.csproj Updated , , and properties from 3.10.0 to 3.11.0 to reflect the new release. No other changes were made. --- EnvelopeGenerator.Web/EnvelopeGenerator.Web.csproj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/EnvelopeGenerator.Web/EnvelopeGenerator.Web.csproj b/EnvelopeGenerator.Web/EnvelopeGenerator.Web.csproj index 0c02ae64..4612b69b 100644 --- a/EnvelopeGenerator.Web/EnvelopeGenerator.Web.csproj +++ b/EnvelopeGenerator.Web/EnvelopeGenerator.Web.csproj @@ -12,9 +12,9 @@ digital data envelope generator web EnvelopeGenerator.Web is an ASP.NET MVC application developed to manage signing processes. It uses Entity Framework Core (EF Core) for database operations. The user interface for signing processes is developed with Razor View Engine (.cshtml files) and JavaScript under wwwroot, integrated with PSPDFKit. This integration allows users to view and sign documents seamlessly. Assets\icon.ico - 3.10.0 - 3.10.0.0 - 3.10.0.0 + 3.11.0 + 3.11.0.0 + 3.11.0.0 Copyright © 2025 Digital Data GmbH. All rights reserved.