using DigitalData.Core.Exceptions; using EnvelopeGenerator.Extensions; namespace EnvelopeGenerator.Application.Model; /// /// /// public record EnvelopeReceiverQueryBase : EnvelopeReceiverQueryBase; /// /// /// /// /// public record EnvelopeReceiverQueryBase where TEnvelopeQuery : EnvelopeQueryBase, new() where TReceiverQuery : ReceiverQueryBase, new() { private string? _key; /// /// /// public virtual string? Key { get => _key; init { if (value is null) { _key = null; return; } (string? EnvelopeUuid, string? ReceiverSignature) = value.DecodeEnvelopeReceiverId(); if (string.IsNullOrEmpty(EnvelopeUuid) || string.IsNullOrEmpty(ReceiverSignature)) throw new BadRequestException("Der EnvelopeReceiverKey muss ein gültiger Base64-kodierter String sein, der die EnvelopeUuid und die ReceiverSignature enthält."); Envelope = new TEnvelopeQuery() { Uuid = EnvelopeUuid }; Receiver = new TReceiverQuery() { Signature = ReceiverSignature }; _key = value; } } /// /// Repräsentiert eine Abfrage für Umschläge. /// public virtual TEnvelopeQuery Envelope { get; init; } = new(); /// /// Stellt eine Abfrage dar, um die Details eines Empfängers zu lesen. /// um spezifische Informationen über einen Empfänger abzurufen. /// public virtual TReceiverQuery Receiver { get; init; } = new(); }