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;
}
///
///
///
///
///
///
///
[Obsolete("Use IRepository")]
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));
}
}