using AutoMapper; using MediatR; using EnvelopeGenerator.Application.Common.Dto; using DigitalData.Core.Abstraction.Application.Repository; using EnvelopeGenerator.Domain.Entities; using Microsoft.EntityFrameworkCore; 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 class ReadEmailTemplateQueryHandler : IRequestHandler { private readonly IMapper _mapper; private readonly IRepository _repo; /// /// Initialisiert eine neue Instanz der -Klasse. /// /// /// /// Die AutoMapper-Instanz, die zum Zuordnen von Objekten verwendet wird. /// public ReadEmailTemplateQueryHandler(IMapper mapper, IRepository repo) { _mapper = mapper; _repo = repo; } /// /// /// /// /// /// /// 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)); } }