using DigitalData.Core.Abstraction.Application.Repository; using EnvelopeGenerator.Application.Common.Commands; using EnvelopeGenerator.Domain.Constants; using EnvelopeGenerator.Domain.Entities; using System.Linq.Expressions; namespace EnvelopeGenerator.Application.EmailTemplates.Commands; /// /// /// /// /// public record EmailTemplateUpdateDto(string Body, string Subject); /// /// Befehl zum Aktualisieren einer E-Mail-Vorlage. /// public record UpdateEmailTemplateCommand : UpdateCommand, IEmailTemplateQuery { /// /// Die eindeutige Kennung der E-Mail-Vorlage (optional). /// public int? Id { get; set; } /// /// Der Typ der E-Mail-Vorlage, z. B. (optional). Beispiele:
/// 0 - DocumentReceived: Benachrichtigung über den Empfang eines Dokuments.
/// 1 - DocumentSigned: Benachrichtigung über die Unterzeichnung eines Dokuments.
/// 2 - DocumentDeleted: Benachrichtigung über das Löschen eines Dokuments.
/// 3 - DocumentCompleted: Benachrichtigung über den Abschluss eines Dokuments.
/// 4 - DocumentAccessCodeReceived: Benachrichtigung über den Erhalt eines Zugangscodes.
/// 5 - DocumentShared: Benachrichtigung über das Teilen eines Dokuments.
/// 6 - TotpSecret: Benachrichtigung über ein TOTP-Geheimnis.
/// 7 - DocumentRejected_ADM (für den Absender): Mail an den Absender, wenn das Dokument abgelehnt wird.
/// 8 - DocumentRejected_REC (für den ablehnenden Empfänger): Mail an den ablehnenden Empfänger, wenn das Dokument abgelehnt wird.
/// 9 - DocumentRejected_REC_2 (für sonstige Empfänger): Mail an andere Empfänger (Brief), wenn das Dokument abgelehnt wird. ///
public EmailTemplateType? Type { get; set; } /// /// /// /// public override Expression> BuildQueryExpression() => Id is int id ? temp => temp.Id == id : temp => temp!.Name == Type.ToString(); } /// /// /// public class UpdateEmailTemplateCommandHandler : UpdateCommandHandler { /// /// /// /// public UpdateEmailTemplateCommandHandler(IRepository repository) : base(repository) { } }