fix(PdfMergeBehavior): improve error diagnostics and exception messages in PdfMergeBehavior
- Added detailed request context to all MergeDocumentException messages - Clarified conversion error message from "converted to PDF/A" to "converted to byte" - Removed unused base64 conversion and redundant variable assignment - Improved code readability and string concatenation formatting
This commit is contained in:
parent
5b30465126
commit
e57e9e1834
@ -1,5 +1,4 @@
|
||||
#if WINDOWS
|
||||
using DevExpress.XtraReports;
|
||||
using EnvelopeGenerator.Application.Common.Extensions;
|
||||
using EnvelopeGenerator.Application.Exceptions;
|
||||
using EnvelopeGenerator.Domain.Constants;
|
||||
@ -26,9 +25,9 @@ public class PdfMergeBehavior : IPipelineBehavior<BurnPdfCommand, byte[]>
|
||||
var doc = await next(cancel);
|
||||
|
||||
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));
|
||||
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));
|
||||
|
||||
using var oDocumentStream = new MemoryStream(doc);
|
||||
using var oReportStream = new MemoryStream(request.Report);
|
||||
@ -42,31 +41,31 @@ public class PdfMergeBehavior : IPipelineBehavior<BurnPdfCommand, byte[]>
|
||||
|
||||
oStatus = oDocumentPDF.GetStat();
|
||||
if (oStatus != GdPictureStatus.OK)
|
||||
throw new MergeDocumentException($"Document could not be loaded: {oStatus}");
|
||||
throw new MergeDocumentException($"Document could not be loaded: {oStatus}."
|
||||
+ "Request details:\n" + request.ToJson(Format.Json.ForDiagnostics));
|
||||
|
||||
// Load the report file into memory
|
||||
oReportPDF.LoadFromStream(oReportStream, true);
|
||||
oStatus = oReportPDF.GetStat();
|
||||
if (oStatus != GdPictureStatus.OK)
|
||||
throw new MergeDocumentException($"Report could not be loaded: {oStatus}");
|
||||
throw new MergeDocumentException($"Report could not be loaded: {oStatus}."
|
||||
+ "Request details:\n" + request.ToJson(Format.Json.ForDiagnostics));
|
||||
|
||||
// Merge the documents
|
||||
var oMergedPDF = oDocumentPDF.Merge2Documents(oDocumentPDF, oReportPDF);
|
||||
oStatus = oMergedPDF.GetStat();
|
||||
if (oStatus != GdPictureStatus.OK)
|
||||
throw new MergeDocumentException($"Documents could not be merged: {oStatus}");
|
||||
throw new MergeDocumentException($"Documents could not be merged: {oStatus}."
|
||||
+ "Request details:\n" + request.ToJson(Format.Json.ForDiagnostics));
|
||||
|
||||
// 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}");
|
||||
throw new MergeDocumentException($"Document could not be converted to byte: {oStatus}."
|
||||
+ "Request details:\n" + request.ToJson(Format.Json.ForDiagnostics));
|
||||
|
||||
doc = oFinalStream.ToArray();
|
||||
|
||||
string base64String = Convert.ToBase64String(doc);
|
||||
|
||||
return doc;
|
||||
return oFinalStream.ToArray();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
Loading…
x
Reference in New Issue
Block a user