diff --git a/EnvelopeGenerator.Application/EmailTemplates/Queries/ReadEmailTemplateQuery.cs b/EnvelopeGenerator.Application/EmailTemplates/Queries/ReadEmailTemplateQuery.cs index a64f4778..11c97cfa 100644 --- a/EnvelopeGenerator.Application/EmailTemplates/Queries/ReadEmailTemplateQuery.cs +++ b/EnvelopeGenerator.Application/EmailTemplates/Queries/ReadEmailTemplateQuery.cs @@ -13,7 +13,7 @@ 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). @@ -34,12 +34,17 @@ public record ReadEmailTemplateQuery : IEmailTemplateQuery, IRequest public EmailTemplateType? Type { get; set; } + + /// + /// + /// + public string? LangCode { get; set; } } /// /// /// -public class ReadEmailTemplateQueryHandler : IRequestHandler +public class ReadEmailTemplateQueryHandler : IRequestHandler> { private readonly IMapper _mapper; @@ -65,14 +70,21 @@ 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()); + var query = _repo.Query; - var entity = await query.FirstOrDefaultAsync(cancel) ?? throw new NotFoundException(); + if (request.Id is int id) + query = query.Where(temp => temp.Id == id); - return _mapper.Map(entity); + if (request.Type is EmailTemplateType type) + query = query.Where(temp => temp.Name == type.ToString()); + + if (request.LangCode is string langCode) + query = query.Where(temp => temp.LangCode == langCode); + + var entity = await query.ToListAsync(cancel); + + return _mapper.Map>(entity); } } \ No newline at end of file