From 632723de5a5257ceac9cadf3e5584078fdbc6ff1 Mon Sep 17 00:00:00 2001 From: TekH Date: Fri, 6 Feb 2026 15:01:04 +0100 Subject: [PATCH] Refactor email template DTOs and response handling Replaced ReadEmailTemplateResponse with EmailTemplateDto as the standard DTO for email templates. Updated ReadEmailTemplateQuery and its handler to use EmailTemplateDto. Removed the obsolete MappingProfile and cleaned up EmailTemplateDto with improved documentation. Simplified UpdateEmailTemplateCommandHandler by removing conditional updates for Body and Subject. These changes streamline DTO usage and reduce redundancy in email template handling. --- .../Common/Dto/EmailTemplateDto.cs | 57 +++++++++---------- .../UpdateEmailTemplateCommandHandler.cs | 6 -- .../EmailTemplates/MappingProfile.cs | 24 -------- .../Queries/Read/ReadEmailTemplateQuery.cs | 12 ++-- .../Queries/Read/ReadEmailTemplateResponse.cs | 37 ------------ 5 files changed, 32 insertions(+), 104 deletions(-) delete mode 100644 EnvelopeGenerator.Application/EmailTemplates/MappingProfile.cs delete mode 100644 EnvelopeGenerator.Application/EmailTemplates/Queries/Read/ReadEmailTemplateResponse.cs diff --git a/EnvelopeGenerator.Application/Common/Dto/EmailTemplateDto.cs b/EnvelopeGenerator.Application/Common/Dto/EmailTemplateDto.cs index 6998c1d7..c5d1aa6f 100644 --- a/EnvelopeGenerator.Application/Common/Dto/EmailTemplateDto.cs +++ b/EnvelopeGenerator.Application/Common/Dto/EmailTemplateDto.cs @@ -1,40 +1,37 @@ -using Microsoft.AspNetCore.Mvc; +namespace EnvelopeGenerator.Application.Common.Dto; -namespace EnvelopeGenerator.Application.Common.Dto +/// +/// +/// +public record EmailTemplateDto { /// /// /// - public record EmailTemplateDto - { - /// - /// - /// - public int Id { get; init; } + public int Id { get; init; } - /// - /// - /// - public required string Name { get; init; } + /// + /// + /// + public required string Name { get; init; } - /// - /// Das Datum und die Uhrzeit, wann die Vorlage hinzugefügt wurde. - /// - public DateTime AddedWhen { get; init; } + /// + /// Das Datum und die Uhrzeit, wann die Vorlage hinzugefügt wurde. + /// + public DateTime AddedWhen { get; init; } - /// - /// Der Inhalt (Body) der E-Mail-Vorlage. Kann null sein. - /// - public string? Body { get; init; } + /// + /// Der Inhalt (Body) der E-Mail-Vorlage. Kann null sein. + /// + public string? Body { get; init; } - /// - /// Der Betreff der E-Mail-Vorlage. Kann null sein. - /// - public string? Subject { get; init; } + /// + /// Der Betreff der E-Mail-Vorlage. Kann null sein. + /// + public string? Subject { get; init; } - /// - /// Das Datum und die Uhrzeit, wann die Vorlage zuletzt geändert wurde. Kann null sein. - /// - public DateTime? ChangedWhen { get; init; } - }; -} \ No newline at end of file + /// + /// Das Datum und die Uhrzeit, wann die Vorlage zuletzt geändert wurde. Kann null sein. + /// + public DateTime? ChangedWhen { get; init; } +}; \ No newline at end of file diff --git a/EnvelopeGenerator.Application/EmailTemplates/Commands/Update/UpdateEmailTemplateCommandHandler.cs b/EnvelopeGenerator.Application/EmailTemplates/Commands/Update/UpdateEmailTemplateCommandHandler.cs index 2a676c91..b4ac207a 100644 --- a/EnvelopeGenerator.Application/EmailTemplates/Commands/Update/UpdateEmailTemplateCommandHandler.cs +++ b/EnvelopeGenerator.Application/EmailTemplates/Commands/Update/UpdateEmailTemplateCommandHandler.cs @@ -62,12 +62,6 @@ public class UpdateEmailTemplateCommandHandler : IRequestHandler t.Id == tempDto.Id, cancel); } } diff --git a/EnvelopeGenerator.Application/EmailTemplates/MappingProfile.cs b/EnvelopeGenerator.Application/EmailTemplates/MappingProfile.cs deleted file mode 100644 index d9b35b70..00000000 --- a/EnvelopeGenerator.Application/EmailTemplates/MappingProfile.cs +++ /dev/null @@ -1,24 +0,0 @@ -using AutoMapper; -using EnvelopeGenerator.Application.EmailTemplates.Queries.Read; -using EnvelopeGenerator.Domain.Entities; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace EnvelopeGenerator.Application.EmailTemplates; - -/// -/// -/// -public class MappingProfile : Profile -{ - /// - /// - /// - public MappingProfile() - { - CreateMap(); - } -} diff --git a/EnvelopeGenerator.Application/EmailTemplates/Queries/Read/ReadEmailTemplateQuery.cs b/EnvelopeGenerator.Application/EmailTemplates/Queries/Read/ReadEmailTemplateQuery.cs index 58dd98bf..50d81b1c 100644 --- a/EnvelopeGenerator.Application/EmailTemplates/Queries/Read/ReadEmailTemplateQuery.cs +++ b/EnvelopeGenerator.Application/EmailTemplates/Queries/Read/ReadEmailTemplateQuery.cs @@ -2,22 +2,22 @@ using MediatR; using EnvelopeGenerator.Application.Common.Interfaces.Repositories; using EnvelopeGenerator.Domain.Constants; +using EnvelopeGenerator.Application.Common.Dto; namespace EnvelopeGenerator.Application.EmailTemplates.Queries.Read; - /// /// Stellt eine Abfrage dar, um eine E-Mail-Vorlage zu lesen. /// Diese Klasse erbt von . /// -public record ReadEmailTemplateQuery : EmailTemplateQuery, IRequest +public record ReadEmailTemplateQuery : EmailTemplateQuery, IRequest { } /// /// /// -public class ReadEmailTemplateQueryHandler : IRequestHandler +public class ReadEmailTemplateQueryHandler : IRequestHandler { private readonly IMapper _mapper; @@ -46,7 +46,7 @@ public class ReadEmailTemplateQueryHandler : IRequestHandler /// [Obsolete("Use IRepository")] - public async Task Handle(ReadEmailTemplateQuery request, CancellationToken cancellationToken) + public async Task Handle(ReadEmailTemplateQuery request, CancellationToken cancellationToken) { var temp = request.Id is int id ? await _repository.ReadByIdAsync(id) @@ -54,8 +54,6 @@ public class ReadEmailTemplateQueryHandler : IRequestHandler(temp); - - return res; + return _mapper.Map(temp); } } \ No newline at end of file diff --git a/EnvelopeGenerator.Application/EmailTemplates/Queries/Read/ReadEmailTemplateResponse.cs b/EnvelopeGenerator.Application/EmailTemplates/Queries/Read/ReadEmailTemplateResponse.cs deleted file mode 100644 index df68fa94..00000000 --- a/EnvelopeGenerator.Application/EmailTemplates/Queries/Read/ReadEmailTemplateResponse.cs +++ /dev/null @@ -1,37 +0,0 @@ -namespace EnvelopeGenerator.Application.EmailTemplates.Queries.Read; - -/// -/// Stellt die Antwort für eine Abfrage von E-Mail-Vorlagen bereit. -/// -public class ReadEmailTemplateResponse -{ - /// - /// Die eindeutige Kennung der E-Mail-Vorlage. - /// - public int Id { get; set; } - - /// - /// Name des Typs - /// - public required string Name { get; set; } - - /// - /// Das Datum und die Uhrzeit, wann die Vorlage hinzugefügt wurde. - /// - public DateTime AddedWhen { get; set; } - - /// - /// Der Inhalt (Body) der E-Mail-Vorlage. Kann null sein. - /// - public string? Body { get; set; } - - /// - /// Der Betreff der E-Mail-Vorlage. Kann null sein. - /// - public string? Subject { get; set; } - - /// - /// Das Datum und die Uhrzeit, wann die Vorlage zuletzt geändert wurde. Kann null sein. - /// - public DateTime? ChangedWhen { get; set; } -}