diff --git a/EnvelopeGenerator.Application/Pdf/Behaviors/PdfMergeBehavior.cs b/EnvelopeGenerator.Application/Pdf/Behaviors/PdfMergeBehavior.cs index a9a2b86b..616c13c6 100644 --- a/EnvelopeGenerator.Application/Pdf/Behaviors/PdfMergeBehavior.cs +++ b/EnvelopeGenerator.Application/Pdf/Behaviors/PdfMergeBehavior.cs @@ -1,4 +1,5 @@ #if WINDOWS +using DevExpress.XtraReports; using EnvelopeGenerator.Application.Common.Extensions; using EnvelopeGenerator.Application.Exceptions; using EnvelopeGenerator.Domain.Constants; @@ -24,28 +25,13 @@ public class PdfMergeBehavior : IPipelineBehavior { var doc = await next(cancel); - doc = request.Report is byte[] report - ? MergeDocuments(doc, report) - : throw new InvalidOperationException("The final document report could not be merged." + + if (request.Report is null) + throw new InvalidOperationException("The final document report could not be merged." + "There may be an error related to the behavior register order." + "Request details:\n" + request.ToJson(Format.Json.ForDiagnostics)); - string base64String = Convert.ToBase64String(doc); - - return doc; - } - - /// - /// - /// - /// - /// - /// - /// - public static byte[] MergeDocuments(byte[] pDocument, byte[] pReport) - { - using var oDocumentStream = new MemoryStream(pDocument); - using var oReportStream = new MemoryStream(pReport); + using var oDocumentStream = new MemoryStream(doc); + using var oReportStream = new MemoryStream(request.Report); using var oFinalStream = new MemoryStream(); using var oDocumentPDF = new GdPicturePDF(); using var oReportPDF = new GdPicturePDF(); @@ -70,13 +56,17 @@ public class PdfMergeBehavior : IPipelineBehavior if (oStatus != GdPictureStatus.OK) throw new MergeDocumentException($"Documents could not be merged: {oStatus}"); - // Convert to PDF/A + // Convert to byte oMergedPDF.SaveToStream(oFinalStream); oStatus = oDocumentPDF.GetStat(); if (oStatus != GdPictureStatus.OK) throw new MergeDocumentException($"Document could not be converted to PDF/A: {oStatus}"); - return oFinalStream.ToArray(); + doc = oFinalStream.ToArray(); + + string base64String = Convert.ToBase64String(doc); + + return doc; } } #endif \ No newline at end of file