Refactor handler to use generic IRepository for templates

Replaces IEmailTemplateRepository with IRepository<EmailTemplate> in ReadEmailTemplateQueryHandler. Updates method logic to use LINQ queries and FirstOrDefaultAsync. Cleans up obsolete attributes, comments, and using directives. Renames cancellation token parameter for consistency.
This commit is contained in:
2026-02-06 15:14:46 +01:00
parent 632723de5a
commit 17e3a67fe5

View File

@@ -1,8 +1,9 @@
using AutoMapper; using AutoMapper;
using MediatR; using MediatR;
using EnvelopeGenerator.Application.Common.Interfaces.Repositories;
using EnvelopeGenerator.Domain.Constants;
using EnvelopeGenerator.Application.Common.Dto; using EnvelopeGenerator.Application.Common.Dto;
using DigitalData.Core.Abstraction.Application.Repository;
using EnvelopeGenerator.Domain.Entities;
using Microsoft.EntityFrameworkCore;
namespace EnvelopeGenerator.Application.EmailTemplates.Queries.Read; namespace EnvelopeGenerator.Application.EmailTemplates.Queries.Read;
@@ -21,39 +22,35 @@ public class ReadEmailTemplateQueryHandler : IRequestHandler<ReadEmailTemplateQu
{ {
private readonly IMapper _mapper; private readonly IMapper _mapper;
[Obsolete("Use Read-method returning IReadQuery<TEntity> instead.")] private readonly IRepository<EmailTemplate> _repo;
private readonly IEmailTemplateRepository _repository;
/// <summary> /// <summary>
/// Initialisiert eine neue Instanz der <see cref="EmailTemplateController"/>-Klasse. /// Initialisiert eine neue Instanz der <see cref="EmailTemplateController"/>-Klasse.
/// </summary> /// </summary>
/// <param name="mapper"> /// <param name="mapper">
/// <param name="repository"> /// <param name="repo">
/// Die AutoMapper-Instanz, die zum Zuordnen von Objekten verwendet wird. /// Die AutoMapper-Instanz, die zum Zuordnen von Objekten verwendet wird.
/// </param> /// </param>
[Obsolete("Use Read-method returning IReadQuery<TEntity> instead.")] public ReadEmailTemplateQueryHandler(IMapper mapper, IRepository<EmailTemplate> repo)
public ReadEmailTemplateQueryHandler(IMapper mapper, IEmailTemplateRepository repository)
{ {
_mapper = mapper; _mapper = mapper;
_repository = repository; _repo = repo;
} }
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancel"></param>
/// <returns></returns> /// <returns></returns>
/// <exception cref="InvalidOperationException"></exception> /// <exception cref="InvalidOperationException"></exception>
[Obsolete("Use IRepository")] [Obsolete("Use IRepository")]
public async Task<EmailTemplateDto?> Handle(ReadEmailTemplateQuery request, CancellationToken cancellationToken) public async Task<EmailTemplateDto?> Handle(ReadEmailTemplateQuery request, CancellationToken cancel)
{ {
var temp = request.Id is int id var query = request.Id is int id
? await _repository.ReadByIdAsync(id) ? _repo.Query.Where(temp => temp.Id == id)
: request.Type is EmailTemplateType type : _repo.Query.Where(temp => temp.Name == request.Type!.ToString());
? await _repository.ReadByNameAsync(type)
: throw new InvalidOperationException("Either a valid integer ID or a valid EmailTemplateType must be provided in the request.");
return _mapper.Map<EmailTemplateDto>(temp); return _mapper.Map<EmailTemplateDto>(await query.FirstOrDefaultAsync(cancel));
} }
} }