using AutoMapper;
using EnvelopeGenerator.Application.Common.Interfaces.Repositories;
using EnvelopeGenerator.Domain.Constants;
using MediatR;
namespace EnvelopeGenerator.Application.EmailTemplates.Queries.Read;
///
///
///
public class ReadEmailTemplateQueryHandler : IRequestHandler
{
private readonly IMapper _mapper;
[Obsolete("Use Read-method returning IReadQuery instead.")]
private readonly IEmailTemplateRepository _repository;
///
/// Initialisiert eine neue Instanz der -Klasse.
///
///
///
/// Die AutoMapper-Instanz, die zum Zuordnen von Objekten verwendet wird.
///
[Obsolete("Use Read-method returning IReadQuery instead.")]
public ReadEmailTemplateQueryHandler(IMapper mapper, IEmailTemplateRepository repository)
{
_mapper = mapper;
_repository = repository;
}
///
///
///
///
///
///
///
[Obsolete("Use IRepository")]
public async Task Handle(ReadEmailTemplateQuery request, CancellationToken cancellationToken)
{
var temp = request.Id is int id
? await _repository.ReadByIdAsync(id)
: request.Type is EmailTemplateType type
? await _repository.ReadByNameAsync(type)
: throw new InvalidOperationException("Either a valid integer ID or a valid EmailTemplateType must be provided in the request.");
var res = _mapper.Map(temp);
return res;
}
}