Replaced ReadEmailTemplateResponse with EmailTemplateDto as the standard DTO for email templates. Updated ReadEmailTemplateQuery and its handler to use EmailTemplateDto. Removed the obsolete MappingProfile and cleaned up EmailTemplateDto with improved documentation. Simplified UpdateEmailTemplateCommandHandler by removing conditional updates for Body and Subject. These changes streamline DTO usage and reduce redundancy in email template handling.
59 lines
2.1 KiB
C#
59 lines
2.1 KiB
C#
using AutoMapper;
|
|
using MediatR;
|
|
using EnvelopeGenerator.Application.Common.Interfaces.Repositories;
|
|
using EnvelopeGenerator.Domain.Constants;
|
|
using EnvelopeGenerator.Application.Common.Dto;
|
|
|
|
namespace EnvelopeGenerator.Application.EmailTemplates.Queries.Read;
|
|
|
|
/// <summary>
|
|
/// Stellt eine Abfrage dar, um eine E-Mail-Vorlage zu lesen.
|
|
/// Diese Klasse erbt von <see cref="EmailTemplateQuery"/>.
|
|
/// </summary>
|
|
public record ReadEmailTemplateQuery : EmailTemplateQuery, IRequest<EmailTemplateDto?>
|
|
{
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public class ReadEmailTemplateQueryHandler : IRequestHandler<ReadEmailTemplateQuery, EmailTemplateDto?>
|
|
{
|
|
private readonly IMapper _mapper;
|
|
|
|
[Obsolete("Use Read-method returning IReadQuery<TEntity> instead.")]
|
|
private readonly IEmailTemplateRepository _repository;
|
|
|
|
/// <summary>
|
|
/// Initialisiert eine neue Instanz der <see cref="EmailTemplateController"/>-Klasse.
|
|
/// </summary>
|
|
/// <param name="mapper">
|
|
/// <param name="repository">
|
|
/// Die AutoMapper-Instanz, die zum Zuordnen von Objekten verwendet wird.
|
|
/// </param>
|
|
[Obsolete("Use Read-method returning IReadQuery<TEntity> instead.")]
|
|
public ReadEmailTemplateQueryHandler(IMapper mapper, IEmailTemplateRepository repository)
|
|
{
|
|
_mapper = mapper;
|
|
_repository = repository;
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <param name="cancellationToken"></param>
|
|
/// <returns></returns>
|
|
/// <exception cref="InvalidOperationException"></exception>
|
|
[Obsolete("Use IRepository")]
|
|
public async Task<EmailTemplateDto?> 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.");
|
|
|
|
return _mapper.Map<EmailTemplateDto>(temp);
|
|
}
|
|
} |