Allow receiver signing command to reuse an existing document stream
This commit is contained in:
@@ -5,6 +5,7 @@ using EnvelopeGenerator.Application.Common.Dto;
|
||||
using EnvelopeGenerator.Application.Common.Enums;
|
||||
using EnvelopeGenerator.Application.Documents.Queries;
|
||||
using EnvelopeGenerator.Application.EnvelopeReceivers.Queries;
|
||||
using EnvelopeGenerator.Application.Envelopes.Queries;
|
||||
using EnvelopeGenerator.Domain.Entities;
|
||||
using EnvelopeGenerator.Domain.Exceptions;
|
||||
using MediatR;
|
||||
@@ -26,6 +27,11 @@ public record SignPdfByEnvelopeReceiverCommand : IRequest<Stream>
|
||||
///
|
||||
/// </summary>
|
||||
public int ReceiverId { get; init; }
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public Stream? Document { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -62,10 +68,14 @@ public class SignPdfByEnvelopeReceiverCommandHandler(IRepository<DocReceiverElem
|
||||
}, cancel) ?? throw new DataIntegrityException($"No secrets found for Envelope ID {request.EnvelopeId} and Receiver ID {request.ReceiverId}.");
|
||||
|
||||
// read document
|
||||
var unsignedDoc = await Sender.Send(new ReadDocumentQuery(EnvelopeId: request.EnvelopeId), cancel);
|
||||
var unsignedDocBytes = unsignedDoc.ByteData ?? throw new NotFoundException($"Document not found for Envelope ID {request.EnvelopeId} and Receiver ID {request.ReceiverId}.");
|
||||
|
||||
Stream doc = new MemoryStream(unsignedDocBytes);
|
||||
if(request.Document is null)
|
||||
{
|
||||
var unsignedDoc = await Sender.Send(new ReadDocumentQuery(EnvelopeId: request.EnvelopeId), cancel);
|
||||
var unsignedDocBytes = unsignedDoc.ByteData ?? throw new NotFoundException($"Document not found for Envelope ID {request.EnvelopeId} and Receiver ID {request.ReceiverId}.");
|
||||
request.Document = new MemoryStream(unsignedDocBytes);
|
||||
}
|
||||
|
||||
Stream doc = request.Document;
|
||||
|
||||
// sign document for each element
|
||||
foreach (var element in elementDtos)
|
||||
|
||||
Reference in New Issue
Block a user