From ff094ebfe1747acae3b42f505515e259e8c93fd2 Mon Sep 17 00:00:00 2001 From: TekH Date: Mon, 9 Feb 2026 09:46:46 +0100 Subject: [PATCH] Refactor email template query to use interface Replaced EmailTemplateQueryBase record with IEmailTemplateQuery interface for email template queries. Updated all relevant commands, queries, and controller methods to use the new interface. Removed EmailTemplateQueryBase and migrated properties to implementing classes. Improved documentation to clarify query structure and Type property usage. --- .../Controllers/EmailTemplateController.cs | 2 +- .../Commands/ResetEmailTemplateCommand.cs | 43 ++++++++----------- .../Commands/UpdateEmailTemplateCommand.cs | 2 +- .../EmailTemplates/EmailTemplateQueryBase.cs | 24 ----------- .../EmailTemplates/IEmailTemplateQuery.cs | 30 +++++++++++++ .../Queries/ReadEmailTemplateQuery.cs | 4 +- 6 files changed, 51 insertions(+), 54 deletions(-) delete mode 100644 EnvelopeGenerator.Application/EmailTemplates/EmailTemplateQueryBase.cs create mode 100644 EnvelopeGenerator.Application/EmailTemplates/IEmailTemplateQuery.cs diff --git a/EnvelopeGenerator.API/Controllers/EmailTemplateController.cs b/EnvelopeGenerator.API/Controllers/EmailTemplateController.cs index f2ca3c61..9aba9315 100644 --- a/EnvelopeGenerator.API/Controllers/EmailTemplateController.cs +++ b/EnvelopeGenerator.API/Controllers/EmailTemplateController.cs @@ -82,7 +82,7 @@ public class EmailTemplateController(IMapper mapper, IRepository /// Wenn der Benutzer nicht authentifiziert ist. /// Wenn die gesuchte Abfrage nicht gefunden wird. [HttpPut] - public async Task Update([FromQuery] EmailTemplateQueryBase? temp = null, [FromBody] UpdateEmailTemplateCommand? update = null) + public async Task Update([FromQuery] IEmailTemplateQuery? temp = null, [FromBody] UpdateEmailTemplateCommand? update = null) { if (update is null) { diff --git a/EnvelopeGenerator.Application/EmailTemplates/Commands/ResetEmailTemplateCommand.cs b/EnvelopeGenerator.Application/EmailTemplates/Commands/ResetEmailTemplateCommand.cs index 8781f391..b151091f 100644 --- a/EnvelopeGenerator.Application/EmailTemplates/Commands/ResetEmailTemplateCommand.cs +++ b/EnvelopeGenerator.Application/EmailTemplates/Commands/ResetEmailTemplateCommand.cs @@ -9,39 +9,30 @@ namespace EnvelopeGenerator.Application.EmailTemplates.Commands; /// /// Ein Befehl zum Zurücksetzen einer E-Mail-Vorlage auf die Standardwerte. -/// Erbt von und ermöglicht die Angabe einer optionalen ID und eines Typs der E-Mail-Vorlage.

-/// Beispiele:
-/// 0 - DocumentReceived: Benachrichtigung über den Empfang eines Dokuments.
-/// 1 - DocumentSigned: Benachrichtigung über die Unterzeichnung eines Dokuments.
-/// 2 - DocumentDeleted: Benachrichtigung über das Löschen eines Dokuments.
-/// 3 - DocumentCompleted: Benachrichtigung über den Abschluss eines Dokuments.
-/// 4 - DocumentAccessCodeReceived: Benachrichtigung über den Erhalt eines Zugangscodes.
-/// 5 - DocumentShared: Benachrichtigung über das Teilen eines Dokuments.
-/// 6 - TotpSecret: Benachrichtigung über ein TOTP-Geheimnis.
-/// 7 - DocumentRejected_ADM (Für den Absender): Mail an den Absender, wenn das Dokument abgelehnt wird.
-/// 8 - DocumentRejected_REC (Für den ablehnenden Empfänger): Mail an den ablehnenden Empfänger, wenn das Dokument abgelehnt wird.
-/// 9 - DocumentRejected_REC_2 (Für sonstige Empfänger): Mail an andere Empfänger (Brief), wenn das Dokument abgelehnt wird.
+/// Erbt von und ermöglicht die Angabe einer optionalen ID und eines Typs der E-Mail-Vorlage.

///
-public record ResetEmailTemplateCommand : EmailTemplateQueryBase, IRequest +public record ResetEmailTemplateCommand : IEmailTemplateQuery, IRequest { /// - /// + /// Die eindeutige Kennung der E-Mail-Vorlage (optional). /// - /// - public ResetEmailTemplateCommand(EmailTemplateQueryBase? orginal = null) : base(orginal ?? new()) - { - - } + public int? Id { get; set; } /// - /// + /// Der Typ der E-Mail-Vorlage, z. B. (optional). Beispiele: + /// 0 - DocumentReceived: Benachrichtigung über den Empfang eines Dokuments. + /// 1 - DocumentSigned: Benachrichtigung über die Unterzeichnung eines Dokuments. + /// 2 - DocumentDeleted: Benachrichtigung über das Löschen eines Dokuments. + /// 3 - DocumentCompleted: Benachrichtigung über den Abschluss eines Dokuments. + /// 4 - DocumentAccessCodeReceived: Benachrichtigung über den Erhalt eines Zugangscodes. + /// 5 - DocumentShared: Benachrichtigung über das Teilen eines Dokuments. + /// 6 - TotpSecret: Benachrichtigung über ein TOTP-Geheimnis. + /// 7 - DocumentRejected_ADM (für den Absender): Mail an den Absender, wenn das Dokument abgelehnt wird. + /// 8 - DocumentRejected_REC (für den ablehnenden Empfänger): Mail an den ablehnenden Empfänger, wenn das Dokument abgelehnt wird. + /// 9 - DocumentRejected_REC_2 (für sonstige Empfänger): Mail an andere Empfänger (Brief), wenn das Dokument abgelehnt wird. /// - /// Die optionale ID der E-Mail-Vorlage, die zurückgesetzt werden soll. - /// Der Typ der E-Mail-Vorlage, z. B. (optional). - public ResetEmailTemplateCommand(int? Id = null, EmailTemplateType? Type = null) : base(Id, Type) - { - } -}; + public EmailTemplateType? Type { get; set; } +} /// /// diff --git a/EnvelopeGenerator.Application/EmailTemplates/Commands/UpdateEmailTemplateCommand.cs b/EnvelopeGenerator.Application/EmailTemplates/Commands/UpdateEmailTemplateCommand.cs index 559c67ca..bddc7a52 100644 --- a/EnvelopeGenerator.Application/EmailTemplates/Commands/UpdateEmailTemplateCommand.cs +++ b/EnvelopeGenerator.Application/EmailTemplates/Commands/UpdateEmailTemplateCommand.cs @@ -25,7 +25,7 @@ public record UpdateEmailTemplateCommand(string? Body = null, string? Subject = /// Die Abfrage, die die E-Mail-Vorlage darstellt, die aktualisiert werden soll. /// [JsonIgnore] - public EmailTemplateQueryBase? EmailTemplateQuery { get; set; } + public IEmailTemplateQuery? EmailTemplateQuery { get; set; } /// /// diff --git a/EnvelopeGenerator.Application/EmailTemplates/EmailTemplateQueryBase.cs b/EnvelopeGenerator.Application/EmailTemplates/EmailTemplateQueryBase.cs deleted file mode 100644 index 347c5c9e..00000000 --- a/EnvelopeGenerator.Application/EmailTemplates/EmailTemplateQueryBase.cs +++ /dev/null @@ -1,24 +0,0 @@ -using EnvelopeGenerator.Domain.Constants; - -namespace EnvelopeGenerator.Application.EmailTemplates; - -/// -/// Repräsentiert eine Abfrage für E-Mail-Vorlagen, die für Absender und Empfänger von Umschlägen verwendet werden. -/// Die Standardkultur ist "de-DE". -/// -/// Die eindeutige Kennung der E-Mail-Vorlage (optional). -/// Der Typ der E-Mail-Vorlage, z. B. (optional). Beispiele: -/// 0 - DocumentReceived: Benachrichtigung über den Empfang eines Dokuments. -/// 1 - DocumentSigned: Benachrichtigung über die Unterzeichnung eines Dokuments. -/// 2 - DocumentDeleted: Benachrichtigung über das Löschen eines Dokuments. -/// 3 - DocumentCompleted: Benachrichtigung über den Abschluss eines Dokuments. -/// 4 - DocumentAccessCodeReceived: Benachrichtigung über den Erhalt eines Zugangscodes. -/// 5 - DocumentShared: Benachrichtigung über das Teilen eines Dokuments. -/// 6 - TotpSecret: Benachrichtigung über ein TOTP-Geheimnis. -/// 7 - DocumentRejected_ADM (Für den Absender): Mail an den Absender, wenn das Dokument abgelehnt wird. -/// 8 - DocumentRejected_REC (Für den ablehnenden Empfänger): Mail an den ablehnenden Empfänger, wenn das Dokument abgelehnt wird. -/// 9 - DocumentRejected_REC_2 (Für sonstige Empfänger): Mail an andere Empfänger (Brief), wenn das Dokument abgelehnt wird. -/// -public record EmailTemplateQueryBase(int? Id = null, EmailTemplateType? Type = null) -{ -} \ No newline at end of file diff --git a/EnvelopeGenerator.Application/EmailTemplates/IEmailTemplateQuery.cs b/EnvelopeGenerator.Application/EmailTemplates/IEmailTemplateQuery.cs new file mode 100644 index 00000000..8cc93292 --- /dev/null +++ b/EnvelopeGenerator.Application/EmailTemplates/IEmailTemplateQuery.cs @@ -0,0 +1,30 @@ +using EnvelopeGenerator.Domain.Constants; + +namespace EnvelopeGenerator.Application.EmailTemplates; + +/// +/// Stellt eine Schnittstelle für Abfragen von E-Mail-Vorlagen dar, die für Absender und Empfänger von Umschlägen verwendet werden. +/// Die Standardkultur ist "de-DE". +/// +public interface IEmailTemplateQuery +{ + /// + /// Die eindeutige Kennung der E-Mail-Vorlage (optional). + /// + int? Id { get; set; } + + /// + /// Der Typ der E-Mail-Vorlage, z. B. (optional). Beispiele: + /// 0 - DocumentReceived: Benachrichtigung über den Empfang eines Dokuments. + /// 1 - DocumentSigned: Benachrichtigung über die Unterzeichnung eines Dokuments. + /// 2 - DocumentDeleted: Benachrichtigung über das Löschen eines Dokuments. + /// 3 - DocumentCompleted: Benachrichtigung über den Abschluss eines Dokuments. + /// 4 - DocumentAccessCodeReceived: Benachrichtigung über den Erhalt eines Zugangscodes. + /// 5 - DocumentShared: Benachrichtigung über das Teilen eines Dokuments. + /// 6 - TotpSecret: Benachrichtigung über ein TOTP-Geheimnis. + /// 7 - DocumentRejected_ADM (für den Absender): Mail an den Absender, wenn das Dokument abgelehnt wird. + /// 8 - DocumentRejected_REC (für den ablehnenden Empfänger): Mail an den ablehnenden Empfänger, wenn das Dokument abgelehnt wird. + /// 9 - DocumentRejected_REC_2 (für sonstige Empfänger): Mail an andere Empfänger (Brief), wenn das Dokument abgelehnt wird. + /// + EmailTemplateType? Type { get; set; } +} \ No newline at end of file diff --git a/EnvelopeGenerator.Application/EmailTemplates/Queries/ReadEmailTemplateQuery.cs b/EnvelopeGenerator.Application/EmailTemplates/Queries/ReadEmailTemplateQuery.cs index 68bc2736..6138736a 100644 --- a/EnvelopeGenerator.Application/EmailTemplates/Queries/ReadEmailTemplateQuery.cs +++ b/EnvelopeGenerator.Application/EmailTemplates/Queries/ReadEmailTemplateQuery.cs @@ -9,9 +9,9 @@ namespace EnvelopeGenerator.Application.EmailTemplates.Queries.Read; /// /// Stellt eine Abfrage dar, um eine E-Mail-Vorlage zu lesen. -/// Diese Klasse erbt von . +/// Diese Klasse erbt von . /// -public record ReadEmailTemplateQuery : EmailTemplateQueryBase, IRequest +public record ReadEmailTemplateQuery : IEmailTemplateQuery, IRequest { }