diff --git a/EnvelopeGenerator.ServiceHost/Jobs/FinalizeDocument/PDFBurner.cs b/EnvelopeGenerator.ServiceHost/Jobs/FinalizeDocument/PDFBurner.cs
index a9cc99a3..2022929a 100644
--- a/EnvelopeGenerator.ServiceHost/Jobs/FinalizeDocument/PDFBurner.cs
+++ b/EnvelopeGenerator.ServiceHost/Jobs/FinalizeDocument/PDFBurner.cs
@@ -1,8 +1,5 @@
using System.Collections.Immutable;
using System.Drawing;
-using System.IO;
-using DigitalData.Modules.Base;
-using DigitalData.Modules.Logging;
using EnvelopeGenerator.Domain.Entities;
using EnvelopeGenerator.Infrastructure;
using EnvelopeGenerator.PdfEditor;
@@ -14,33 +11,21 @@ using Newtonsoft.Json;
namespace EnvelopeGenerator.ServiceHost.Jobs.FinalizeDocument;
-public class PDFBurner : BaseClass
+//TODO: check if licence manager is needed as a dependency to
+///
+///
+///
+///
+///
+///
+///
+///
+public class PDFBurner(IOptions workerOptions, EGDbContext context, ILogger logger, LicenseManager licenseManager, AnnotationManager manager)
{
- private readonly AnnotationManager _manager;
- private readonly LicenseManager _licenseManager;
- private readonly DbContextOptions _dbContextOptions;
-
- private readonly PDFBurnerParams _pdfBurnerParams;
-
- public PDFBurner(LogConfig logConfig, string gdPictureLicenseKey, PDFBurnerParams pdfBurnerParams, string connectionString) : base(logConfig)
- {
- _licenseManager = new LicenseManager();
- _licenseManager.RegisterKEY(gdPictureLicenseKey);
-
- _manager = new AnnotationManager();
-
- _pdfBurnerParams = pdfBurnerParams;
- _dbContextOptions = new DbContextOptionsBuilder()
- .UseSqlServer(connectionString)
- .EnableDetailedErrors()
- .EnableSensitiveDataLogging()
- .Options;
- }
-
+ private readonly WorkerOptions.PDFBurnerOptions _options = workerOptions.Value.PdfBurner;
+
public byte[] BurnAnnotsToPDF(byte[] sourceBuffer, List instantJsonList, int envelopeId)
{
- using var context = new EGDbContext(_dbContextOptions, Options.Create(new DbTriggerParams()));
-
var envelope = context.Envelopes.FirstOrDefault(env => env.Id == envelopeId);
if (envelope is null)
{
@@ -69,7 +54,7 @@ public class PDFBurner : BaseClass
sourceBuffer = doc.Background(elements, 1.9500000000000002 * 0.93, 2.52 * 0.67).ExportStream().ToArray();
using var sourceStream = new MemoryStream(sourceBuffer);
- var result = _manager.InitFromStream(sourceStream);
+ var result = manager.InitFromStream(sourceStream);
if (result != GdPictureStatus.OK)
{
throw new BurnAnnotationException($"Could not open document for burning: [{result}]");
@@ -120,13 +105,13 @@ public class PDFBurner : BaseClass
}
using var newStream = new MemoryStream();
- result = _manager.SaveDocumentToPDF(newStream);
+ result = manager.SaveDocumentToPDF(newStream);
if (result != GdPictureStatus.OK)
{
throw new BurnAnnotationException($"Could not save document to stream: [{result}]");
}
- _manager.Close();
+ manager.Close();
return newStream.ToArray();
}
@@ -135,7 +120,7 @@ public class PDFBurner : BaseClass
public byte[] BurnInstantJSONAnnotsToPDF(byte[] sourceBuffer, List instantJsonList)
{
using var sourceStream = new MemoryStream(sourceBuffer);
- var result = _manager.InitFromStream(sourceStream);
+ var result = manager.InitFromStream(sourceStream);
if (result != GdPictureStatus.OK)
{
throw new BurnAnnotationException($"Could not open document for burning: [{result}]");
@@ -149,26 +134,26 @@ public class PDFBurner : BaseClass
}
catch (Exception ex)
{
- Logger.LogWarning("Error in AddInstantJSONAnnotationToPDF - oJson: ");
- Logger.LogWarning(json);
+ logger.LogWarning("Error in AddInstantJSONAnnotationToPDF - oJson: ");
+ logger.LogWarning(json);
throw new BurnAnnotationException("Adding Annotation failed", ex);
}
}
- result = _manager.BurnAnnotationsToPage(RemoveInitialAnnots: true, VectorMode: true);
+ result = manager.BurnAnnotationsToPage(RemoveInitialAnnots: true, VectorMode: true);
if (result != GdPictureStatus.OK)
{
throw new BurnAnnotationException($"Could not burn annotations to file: [{result}]");
}
using var newStream = new MemoryStream();
- result = _manager.SaveDocumentToPDF(newStream);
+ result = manager.SaveDocumentToPDF(newStream);
if (result != GdPictureStatus.OK)
{
throw new BurnAnnotationException($"Could not save document to stream: [{result}]");
}
- _manager.Close();
+ manager.Close();
return newStream.ToArray();
}
@@ -185,7 +170,7 @@ public class PDFBurner : BaseClass
foreach (var annotation in annotationData.annotations)
{
- Logger.LogDebug("Adding AnnotationID: " + annotation.id);
+ logger.LogDebug("Adding AnnotationID: " + annotation.id);
switch (annotation.type)
{
@@ -197,7 +182,7 @@ public class PDFBurner : BaseClass
break;
case AnnotationType.Widget:
var formFieldValue = annotationData.formFieldValues.FirstOrDefault(fv => fv.name == annotation.id);
- if (formFieldValue is not null && !_pdfBurnerParams.IgnoredLabels.Contains(formFieldValue.value))
+ if (formFieldValue is not null && !_options.IgnoredLabels.Contains(formFieldValue.value))
{
AddFormFieldValue(annotation, formFieldValue);
}
@@ -208,8 +193,8 @@ public class PDFBurner : BaseClass
private void AddImageAnnotation(double x, double y, double width, double height, int page, string base64)
{
- _manager.SelectPage(page);
- _manager.AddEmbeddedImageAnnotFromBase64(base64, (float) x, (float) y, (float) width, (float) height);
+ manager.SelectPage(page);
+ manager.AddEmbeddedImageAnnotFromBase64(base64, (float) x, (float) y, (float) width, (float) height);
}
private void AddImageAnnotation(Annotation annotation, Dictionary attachments)
@@ -223,8 +208,8 @@ public class PDFBurner : BaseClass
var width = bounds[2];
var height = bounds[3];
- _manager.SelectPage(annotation.pageIndex + 1);
- _manager.AddEmbeddedImageAnnotFromBase64(attachment.Value.binary, (float) x, (float) y, (float) width, (float) height);
+ manager.SelectPage(annotation.pageIndex + 1);
+ manager.AddEmbeddedImageAnnotFromBase64(attachment.Value.binary, (float) x, (float) y, (float) width, (float) height);
}
private void AddInkAnnotation(int page, string value)
@@ -237,12 +222,12 @@ public class PDFBurner : BaseClass
var segments = ink.lines.points;
var color = ColorTranslator.FromHtml(ink.strokeColor);
- _manager.SelectPage(page);
+ manager.SelectPage(page);
foreach (var segment in segments)
{
var points = segment.Select(ToPointF).ToArray();
- _manager.AddFreeHandAnnot(color, points);
+ manager.AddFreeHandAnnot(color, points);
}
}
@@ -250,24 +235,24 @@ public class PDFBurner : BaseClass
{
var segments = annotation.lines.points;
var color = ColorTranslator.FromHtml(annotation.strokeColor);
- _manager.SelectPage(annotation.pageIndex + 1);
+ manager.SelectPage(annotation.pageIndex + 1);
foreach (var segment in segments)
{
var points = segment.Select(ToPointF).ToArray();
- _manager.AddFreeHandAnnot(color, points);
+ manager.AddFreeHandAnnot(color, points);
}
}
private void AddFormFieldValue(double x, double y, double width, double height, int page, string value)
{
- _manager.SelectPage(page);
+ manager.SelectPage(page);
- var annot = _manager.AddTextAnnot((float) x, (float) y, (float) width, (float) height, value);
- annot.FontName = _pdfBurnerParams.FontName;
- annot.FontSize = _pdfBurnerParams.FontSize;
- annot.FontStyle = _pdfBurnerParams.FontStyle;
- _manager.SaveAnnotationsToPage();
+ var annot = manager.AddTextAnnot((float) x, (float) y, (float) width, (float) height, value);
+ annot.FontName = _options.FontName;
+ annot.FontSize = _options.FontSize;
+ annot.FontStyle = _options.FontStyle;
+ manager.SaveAnnotationsToPage();
}
private void AddFormFieldValue(Annotation annotation, FormFieldValue formFieldValue)
@@ -277,16 +262,16 @@ public class PDFBurner : BaseClass
var bounds = annotation.bbox.Select(ToInches).ToList();
var x = bounds[0];
- var y = bounds[1] + _pdfBurnerParams.YOffset * ffIndex + _pdfBurnerParams.TopMargin;
+ var y = bounds[1] + _options.YOffset * ffIndex + _options.TopMargin;
var width = bounds[2];
var height = bounds[3];
- _manager.SelectPage(annotation.pageIndex + 1);
- var annot = _manager.AddTextAnnot((float) x, (float) y, (float) width, (float) height, formFieldValue.value);
- annot.FontName = _pdfBurnerParams.FontName;
- annot.FontSize = _pdfBurnerParams.FontSize;
- annot.FontStyle = _pdfBurnerParams.FontStyle;
- _manager.SaveAnnotationsToPage();
+ manager.SelectPage(annotation.pageIndex + 1);
+ var annot = manager.AddTextAnnot((float) x, (float) y, (float) width, (float) height, formFieldValue.value);
+ annot.FontName = _options.FontName;
+ annot.FontSize = _options.FontSize;
+ annot.FontStyle = _options.FontStyle;
+ manager.SaveAnnotationsToPage();
}
private static PointF ToPointF(List points)