diff --git a/EnvelopeGenerator.API/Controllers/EmailTemplateController.cs b/EnvelopeGenerator.API/Controllers/EmailTemplateController.cs index 9aba9315..8a81b49b 100644 --- a/EnvelopeGenerator.API/Controllers/EmailTemplateController.cs +++ b/EnvelopeGenerator.API/Controllers/EmailTemplateController.cs @@ -1,17 +1,15 @@ using AutoMapper; using EnvelopeGenerator.Application.EmailTemplates; -using EnvelopeGenerator.Application.EmailTemplates.Commands.Reset; -using EnvelopeGenerator.Application.EmailTemplates.Queries.Read; +using EnvelopeGenerator.Application.EmailTemplates.Commands; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using MediatR; -using System.Threading.Tasks; using EnvelopeGenerator.Application.Common.Dto; using DigitalData.Core.Abstraction.Application.Repository; using EnvelopeGenerator.Domain.Entities; using Microsoft.EntityFrameworkCore; using EnvelopeGenerator.Domain.Constants; -using EnvelopeGenerator.Application.EmailTemplates.Commands; +using EnvelopeGenerator.Application.EmailTemplates.Queries; namespace EnvelopeGenerator.API.Controllers; diff --git a/EnvelopeGenerator.Application/EmailTemplates/Queries/ReadEmailTemplateQuery.cs b/EnvelopeGenerator.Application/EmailTemplates/Queries/ReadEmailTemplateQuery.cs index 6138736a..a64f4778 100644 --- a/EnvelopeGenerator.Application/EmailTemplates/Queries/ReadEmailTemplateQuery.cs +++ b/EnvelopeGenerator.Application/EmailTemplates/Queries/ReadEmailTemplateQuery.cs @@ -4,21 +4,42 @@ using EnvelopeGenerator.Application.Common.Dto; using DigitalData.Core.Abstraction.Application.Repository; using EnvelopeGenerator.Domain.Entities; using Microsoft.EntityFrameworkCore; +using EnvelopeGenerator.Domain.Constants; +using DigitalData.Core.Exceptions; -namespace EnvelopeGenerator.Application.EmailTemplates.Queries.Read; +namespace EnvelopeGenerator.Application.EmailTemplates.Queries; /// /// Stellt eine Abfrage dar, um eine E-Mail-Vorlage zu lesen. /// Diese Klasse erbt von . /// -public record ReadEmailTemplateQuery : IEmailTemplateQuery, IRequest +public record ReadEmailTemplateQuery : IEmailTemplateQuery, IRequest { + /// + /// Die eindeutige Kennung der E-Mail-Vorlage (optional). + /// + 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. + ///
+ public EmailTemplateType? Type { get; set; } } /// /// /// -public class ReadEmailTemplateQueryHandler : IRequestHandler +public class ReadEmailTemplateQueryHandler : IRequestHandler { private readonly IMapper _mapper; @@ -44,12 +65,14 @@ public class ReadEmailTemplateQueryHandler : IRequestHandler /// /// - public async Task Handle(ReadEmailTemplateQuery request, CancellationToken cancel) + public async Task Handle(ReadEmailTemplateQuery request, CancellationToken cancel) { var query = request.Id is int id ? _repo.Query.Where(temp => temp.Id == id) : _repo.Query.Where(temp => temp.Name == request.Type!.ToString()); - return _mapper.Map(await query.FirstOrDefaultAsync(cancel)); + var entity = await query.FirstOrDefaultAsync(cancel) ?? throw new NotFoundException(); + + return _mapper.Map(entity); } } \ No newline at end of file