Commit Graph

2268 Commits

Author SHA1 Message Date
e095860b17 Update EnvelopeSigned page to handle confirm vs sign
Add conditional logic to EnvelopeSigned.cshtml to display different headings and confirmation messages based on whether the document was signed or confirmed, using the IsReadAndConfirm flag. This improves user feedback by distinguishing between signing and confirming actions.
2026-03-06 01:25:07 +01:00
9cfc74aa88 Refactor title logic and fix localizer syntax in view
Refactored EnvelopeSigned.cshtml to use a local variable for IsReadAndConfirm when setting the page title, improving readability. Also updated Razor syntax for localizer calls in <h1> and <p> elements to ensure correct evaluation and formatting.
2026-03-06 01:23:06 +01:00
7cd6ca3a5f Update EnvelopeSigned view model and title logic
Set model to EnvelopeReceiverDto and import required types. Update ViewData["Title"] to use DocSigned or DocConfirmed based on Envelope.IsReadAndConfirm() result.
2026-03-06 01:20:47 +01:00
9b660cb25a Pass model to EnvelopeSigned view on already signed check
Previously, the "EnvelopeSigned" view was returned without a model when an envelope was already signed. Now, the er model object is passed to the view to provide additional context or data.
2026-03-06 01:20:25 +01:00
3d43d1896d Add DocConfirmed extension method to Resource.cs
Added a new DocConfirmed extension method to the Extensions class in Resource.cs. This method enables retrieval of the "DocConfirmed" localized string via IStringLocalizer, similar to the existing DocSigned method.
2026-03-06 01:20:12 +01:00
bae62c7c08 Merge branch 'master' into feat/service-host 2026-03-04 17:22:28 +01:00
bcc17f6def Bump version to 3.11.0 in EnvelopeGenerator.Web.csproj
Updated <Version>, <AssemblyVersion>, and <FileVersion> properties from 3.10.0 to 3.11.0 to reflect the new release. No other changes were made.
2026-03-04 16:49:07 +01:00
8e3c334fa3 Update final status to 'Lesebestätigung' for read confirm
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.
2026-03-04 16:19:45 +01:00
08299451bb 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.
2026-03-04 16:19:33 +01:00
59d6d25bdd 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.
2026-03-04 16:09:50 +01:00
9a516ab3c9 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
2026-03-04 16:09:40 +01:00
8fed342dc5 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.
2026-03-04 15:17:47 +01:00
f44643aa3e 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.
2026-03-04 15:02:04 +01:00
86c99596c4 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.
2026-03-04 14:19:11 +01:00
2d0c08b2ce 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.
2026-03-04 14:19:02 +01:00
e0aa963184 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.
2026-03-04 14:18:28 +01:00
afa3694cd7 Add MapAddedWhen to History mapping in MappingProfile
Imported necessary namespaces and updated the CreateHistoryCommand-to-History mapping to include the MapAddedWhen extension method, likely to handle automatic setting of creation timestamps or similar metadata.
2026-02-27 11:34:17 +01:00
48f4ea0c50 Use UTC for AddedWhen timestamp in CreateHistoryCommand
Changed AddedWhen to use DateTime.UtcNow instead of DateTime.Now
to ensure timestamps are stored in UTC, improving consistency
across different time zones and deployment environments.
2026-02-27 11:33:53 +01:00
74c4ddda83 Remove ModifyDocStatusCommandBase and its properties
Deleted the entire ModifyDocStatusCommandBase.cs file, including the record definition, its properties (EnvelopeId, ReceiverId, Value), and the To<TDest>() mapping method. No code or class definitions remain in this file.
2026-02-27 11:32:45 +01:00
f9b1e583df Remove SaveDocStatusCommand and always create doc status
Removed SaveDocStatusCommand and its handler, eliminating logic for updating existing document statuses. DocStatusHandler now always sends CreateDocStatusCommand with simplified parameters when handling DocSignedNotification. This change ensures a new document status is always created instead of updating existing ones.
2026-02-27 11:31:41 +01:00
7c8e0d8481 Merge branch 'refactor/api-unification' into origin/bugfix/history-inconsistency 2026-02-27 11:21:10 +01:00
41dde6f016 Remove BaseModel and BaseService from Jobs namespace
Deleted BaseModel and BaseService classes, along with their
associated using statements and members. This removes the
abstraction layers for database, logging, and state management
from EnvelopeGenerator.ServiceHost.Jobs.
2026-02-26 21:24:21 +01:00
c5b167f0d4 Refactor FinalizeDocumentJob for DI and logging improvements
Refactored FinalizeDocumentJob to use dependency injection for all major services and models, replacing manual initialization. Updated all logging to use injected ILogger with structured messages. Removed obsolete initialization methods. Marked class as [Obsolete] pending migration from CommonServices.Jobs. Improved exception handling and code clarity for better testability and maintainability.
2026-02-26 21:24:03 +01:00
a70faebde6 Refactor ReportModel: remove BaseModel, mark obsolete
Refactored ReportModel to use MSSQLServer Database via primary constructor, removed BaseModel inheritance and State-based constructor. Marked class and List method as obsolete, recommending EnvelopeReport mediator queries. Updated namespace and using directives.
2026-02-26 21:23:07 +01:00
3e01052579 Mark State class obsolete and remove LogConfig property
State is now marked obsolete in favor of DbContext. Removed LogConfig property and its using directive to simplify the class. Minor formatting adjustments applied.
2026-02-26 21:22:41 +01:00
f49b907574 Refactor EnvelopeModel for DI and logging improvements
Removed BaseModel inheritance and switched to constructor injection for MSSQLServer and ILogger dependencies. Updated using directives and replaced Logger.Error with Logger.LogError. Removed obsolete State-based constructor.
2026-02-26 21:22:15 +01:00
86ed96ae76 Refactor ConfigModel for DI and improved logging
Refactored ConfigModel to use dependency injection for MSSQLServer and ILogger, removed BaseModel inheritance and constructor. Updated using directives and replaced Logger.Error with Logger.LogError for better error handling.
2026-02-26 21:21:44 +01:00
9dbfdaa15e Mark ActionService as obsolete and stub out methods
ActionService is now marked obsolete as a placeholder. Its constructor was removed, and all methods now throw NotImplementedException instead of returning true. Each method is also marked obsolete, indicating logic should be migrated from CommonServices.Jobs.
2026-02-26 19:02:57 +01:00
9d66f1d19e Remove BaseClass and logging utilities
Deleted Base.cs and Logging.cs, removing BaseClass, logging configuration, logger classes, and related extension methods for enums and DataRow. These foundational and logging utilities are no longer part of the project.
2026-02-26 19:02:45 +01:00
14cef05d02 Refactor MSSQLServer to use IConfiguration for connection
Replaced LogConfig and direct connection string injection with IConfiguration. Connection string is now retrieved from configuration using the "Default" key. Removed LogConfig dependency and related code.
2026-02-26 19:02:31 +01:00
bdfb973d55 Refactor ReportCreator: DI, logging, and deprecations
Refactored ReportCreator to use constructor injection for dependencies and removed BaseClass inheritance. Marked legacy methods and fields as [Obsolete] to indicate migration to mediator queries. Improved logging by switching to Logger.LogError and updating string interpolation. Removed unused usings and added MergeEnvelope method (also obsolete). These changes modernize the class and highlight areas for further architectural improvement.
2026-02-26 18:57:58 +01:00
15a18b1bfd Refactor PDFBurner to use dependency injection
Replaced internal construction of dependencies with injected EGDbContext, ILogger, LicenseManager, AnnotationManager, and WorkerOptions. Removed BaseClass inheritance and internal fields. Updated annotation and PDF burning methods to use injected instances. Switched configuration from PDFBurnerParams to WorkerOptions.PDFBurnerOptions. Improves testability and aligns with DI best practices.
2026-02-26 18:55:50 +01:00
6fac1cd96a Refactor PDFMerger for DI and remove BaseClass inheritance
PDFMerger now uses dependency injection for LicenseManager and
AnnotationManager, improving modularity and testability. Removed
inheritance from BaseClass and cleaned up unused usings.
2026-02-26 17:24:13 +01:00
79d2636c14 Refactor TempFiles to use ILogger and DI for logging
Removed BaseClass inheritance and legacy logging dependencies. Updated TempFiles to use ILogger<TempFiles> via dependency injection, replaced Logger.Error and Logger.LogDebug with structured logging calls. Cleaned up unused usings and improved log message formatting.
2026-02-25 17:15:51 +01:00
2172ce8203 Register AnnotationManager as transient service
Updated DI comment for clarity on service lifetimes and added AnnotationManager as a transient service to the dependency injection container.
2026-02-25 17:03:59 +01:00
51ab9fb094 Remove placeholder DbConfig registration from DI
DbConfig is no longer registered as a singleton in the dependency injection setup. This prevents accidental injection and avoids runtime NotImplementedException errors. The related comment about service lifetimes remains for future review.
2026-02-25 16:47:59 +01:00
d8a002cd22 Rename ServiceCollectionExtensions to DependencyInjection
Renamed the ServiceCollectionExtensions class to DependencyInjection to better reflect its purpose and possibly consolidate dependency injection methods. No functional changes were made.
2026-02-25 16:43:23 +01:00
e36684820e Add DI registrations for FinalizeDocumentJob services
Expanded AddFinalizeDocumentJob to register ActionService, TempFiles, PDFBurner, PDFMerger, ReportModel, State, MSSQLServer, GdViewer, and LicenseManager with appropriate lifetimes. Added a placeholder DbConfig registration. Marked the method as [Obsolete] and updated using directives for new dependencies.
2026-02-25 16:42:38 +01:00
2a5d953623 Add LoggerExtensions with LogError extension method
Created LoggerExtensions.cs in EnvelopeGenerator.ServiceHost.Extensions, introducing a LogError extension method for ILogger to simplify exception logging.
2026-02-25 16:40:40 +01:00
0aba9e91e2 Add DataRowExtensions for safe value retrieval with defaults
Introduced DataRowExtensions.cs with extension methods for DataRow:
- ItemEx<T>: Retrieves a value by column name with a default if missing or null.
- ItemEx (string): Overload for string values, using the generic method.
These methods help prevent errors when accessing missing or null columns.
2026-02-25 16:39:55 +01:00
1a0973075b Standardize error logging with LogError method
Replaced all usages of _logger?.Error with _logger?.LogError in FinalizeDocumentJob.cs. Renamed the Error method to LogError in Logging.cs for consistency. This change ensures uniform error logging across the codebase.
2026-02-25 13:43:51 +01:00
b8fd26611c Refactor Logger error handling and add extension method
Refactored Logger.Error(Exception) to use a new ILogger extension method, LogError, for improved error logging. Added an overloaded Error method to Logger for custom messages with exceptions. Introduced LoggerExtensions with a LogError extension for consistent exception logging.
2026-02-25 13:42:33 +01:00
0ca372bf45 Update logging methods to use standard naming conventions
Replaced custom Warn method with LogWarning in Logger class and updated usage in FinalizeDocumentJob. Added LogInformation and LogWarning methods for consistency with common logging practices. LogWarning now accepts an Exception as the first parameter, aligning with standard logging signatures.
2026-02-25 13:38:55 +01:00
5230076d5d Rename Logger.Warn to Logger.LogWarning throughout codebase
Replaces all usages of Logger.Warn with Logger.LogWarning for consistency with .NET logging conventions. Updates the Logger class method name and all related calls, with no changes to logic or parameters.
2026-02-25 13:37:50 +01:00
b28084bf19 Replace Info logging with LogInformation
Renamed all usages of the Info logging method to LogInformation across the codebase, including in the Logger class. This aligns logging with standard conventions and improves consistency with common logging frameworks.
2026-02-25 13:37:00 +01:00
cbc983e070 Rename Logger.Debug to Logger.LogDebug across codebase
Renamed the Logger.Debug method to Logger.LogDebug for improved clarity and consistency. Updated all usages in PDFBurner, ReportCreator, FinalizeDocumentJob, TempFiles, and Logging.cs. No changes to logging logic or other log levels.
2026-02-25 13:36:50 +01:00
3b06f3fdac Remove JobDataKeys.cs and its string constants
The JobDataKeys.cs file was deleted, including the static class JobDataKeys and its four string constants: GdPicture, LogConfig, Database, and PdfBurnerParams. This change removes unused or redundant job data key definitions from the codebase.
2026-02-25 13:34:04 +01:00
a12d74871d Refactor PDF burner options naming in WorkerOptions
Renamed WorkerOptions.PdfBurnerParams to PdfBurner and updated its type from PDFBurnerParams to PDFBurnerOptions. Also renamed the record type accordingly and updated all references in the codebase. No changes to the structure or default values of the options.
2026-02-25 13:33:39 +01:00
45b715ed74 Refactor job execution to remove Quartz and job runner
Simplify FinalizeDocumentJob execution by removing Quartz dependencies and the IFinalizeDocumentJobRunner abstraction. The job now uses an ExecuteAsync method with direct access to configuration and options via dependency injection. Worker is updated to call the job directly, and service registration is streamlined. This improves clarity and integration with .NET DI.
2026-02-25 13:29:00 +01:00
9d5e2e6ad2 Refactor FinalizeDocumentJob config to use WorkerOptions
Replaces JobOptions and PDFBurnerParams with a new WorkerOptions class that encapsulates all job configuration, including PDF burning parameters as a nested record. Updates service registration and job constructor to use IOptions<WorkerOptions>. Removes obsolete configuration classes and centralizes options management for improved maintainability.
2026-02-25 13:27:01 +01:00