diff --git a/EnvelopeGenerator.Jobs/Class1.cs b/EnvelopeGenerator.Jobs/Class1.cs
deleted file mode 100644
index aaa0640b..00000000
--- a/EnvelopeGenerator.Jobs/Class1.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace EnvelopeGenerator.Jobs
-{
- public class Class1
- {
-
- }
-}
diff --git a/EnvelopeGenerator.Jobs/EnvelopeGenerator.Jobs.csproj b/EnvelopeGenerator.Jobs/EnvelopeGenerator.Jobs.csproj
index 1456f1ac..02604ab8 100644
--- a/EnvelopeGenerator.Jobs/EnvelopeGenerator.Jobs.csproj
+++ b/EnvelopeGenerator.Jobs/EnvelopeGenerator.Jobs.csproj
@@ -19,23 +19,4 @@
-
-
- PreserveNewest
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/EnvelopeGenerator.Jobs/Jobs/APIBackendJobs/APIEnvelopeJob.cs b/EnvelopeGenerator.Jobs/Jobs/APIBackendJobs/APIEnvelopeJob.cs
index 7b7df8f3..05b6f75d 100644
--- a/EnvelopeGenerator.Jobs/Jobs/APIBackendJobs/APIEnvelopeJob.cs
+++ b/EnvelopeGenerator.Jobs/Jobs/APIBackendJobs/APIEnvelopeJob.cs
@@ -7,7 +7,7 @@ using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
using Quartz;
-namespace EnvelopeGenerator.CommonServices.Jobs.APIBackendJobs;
+namespace EnvelopeGenerator.Jobs.APIBackendJobs;
public class APIEnvelopeJob : IJob
{
diff --git a/EnvelopeGenerator.Jobs/Jobs/DataRowExtensions.cs b/EnvelopeGenerator.Jobs/Jobs/DataRowExtensions.cs
index 2ec940e5..805f6f1f 100644
--- a/EnvelopeGenerator.Jobs/Jobs/DataRowExtensions.cs
+++ b/EnvelopeGenerator.Jobs/Jobs/DataRowExtensions.cs
@@ -1,7 +1,7 @@
using System;
using System.Data;
-namespace EnvelopeGenerator.CommonServices.Jobs;
+namespace EnvelopeGenerator.Jobs;
public static class DataRowExtensions
{
diff --git a/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/FinalizeDocumentExceptions.cs b/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/FinalizeDocumentExceptions.cs
index cd24ec74..847ab06b 100644
--- a/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/FinalizeDocumentExceptions.cs
+++ b/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/FinalizeDocumentExceptions.cs
@@ -1,4 +1,4 @@
-namespace EnvelopeGenerator.CommonServices.Jobs.FinalizeDocument;
+namespace EnvelopeGenerator.Jobs.FinalizeDocument;
public static class FinalizeDocumentExceptions
{
diff --git a/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/FinalizeDocumentJob.cs b/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/FinalizeDocumentJob.cs
index 4be4e3c9..2ddb4e1d 100644
--- a/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/FinalizeDocumentJob.cs
+++ b/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/FinalizeDocumentJob.cs
@@ -4,15 +4,14 @@ using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
-using EnvelopeGenerator.CommonServices.Jobs.FinalizeDocument.FinalizeDocumentExceptions;
using EnvelopeGenerator.Domain.Constants;
using EnvelopeGenerator.Domain.Entities;
using Microsoft.Data.SqlClient;
using Microsoft.Extensions.Logging;
-using Microsoft.Extensions.Logging.Abstractions;
using Quartz;
+using static EnvelopeGenerator.Jobs.FinalizeDocument.FinalizeDocumentExceptions;
-namespace EnvelopeGenerator.CommonServices.Jobs.FinalizeDocument;
+namespace EnvelopeGenerator.Jobs.FinalizeDocument;
public class FinalizeDocumentJob : IJob
{
@@ -23,17 +22,16 @@ public class FinalizeDocumentJob : IJob
private record ConfigSettings(string DocumentPath, string DocumentPathOrigin, string ExportPath);
- public FinalizeDocumentJob()
- : this(NullLogger.Instance)
- {
- }
-
- public FinalizeDocumentJob(ILogger logger)
+ public FinalizeDocumentJob(
+ ILogger logger,
+ PDFBurner pdfBurner,
+ PDFMerger pdfMerger,
+ ReportCreator reportCreator)
{
_logger = logger;
- _pdfBurner = new PDFBurner();
- _pdfMerger = new PDFMerger();
- _reportCreator = new ReportCreator();
+ _pdfBurner = pdfBurner;
+ _pdfMerger = pdfMerger;
+ _reportCreator = reportCreator;
}
public async Task Execute(IJobExecutionContext context)
@@ -77,20 +75,22 @@ public class FinalizeDocumentJob : IJob
continue;
}
+ var data = envelopeData.Value;
+
var envelope = new Envelope
{
Id = envelopeId,
- Uuid = envelopeData.EnvelopeUuid ?? string.Empty,
- Title = envelopeData.Title ?? string.Empty,
- FinalEmailToCreator = FinalEmailType.No,
- FinalEmailToReceivers = FinalEmailType.No
+ Uuid = data.EnvelopeUuid ?? string.Empty,
+ Title = data.Title ?? string.Empty,
+ FinalEmailToCreator = (int)FinalEmailType.No,
+ FinalEmailToReceivers = (int)FinalEmailType.No
};
- var burned = _pdfBurner.BurnAnnotsToPDF(envelopeData.DocumentBytes, envelopeData.AnnotationData, envelopeId);
+ var burned = _pdfBurner.BurnAnnotsToPDF(data.DocumentBytes, data.AnnotationData, envelopeId);
var report = _reportCreator.CreateReport(connection, envelope);
var merged = _pdfMerger.MergeDocuments(burned, report);
- var outputDirectory = Path.Combine(config.ExportPath, envelopeData.ParentFolderUid);
+ var outputDirectory = Path.Combine(config.ExportPath, data.ParentFolderUid);
Directory.CreateDirectory(outputDirectory);
var outputPath = Path.Combine(outputDirectory, $"{envelope.Uuid}.pdf");
await File.WriteAllBytesAsync(outputPath, merged, context.CancellationToken);
diff --git a/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/PDFBurner.cs b/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/PDFBurner.cs
index c140e247..942d608d 100644
--- a/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/PDFBurner.cs
+++ b/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/PDFBurner.cs
@@ -1,7 +1,6 @@
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
-using EnvelopeGenerator.CommonServices.Jobs.FinalizeDocument.FinalizeDocumentExceptions;
using iText.IO.Image;
using iText.Kernel.Colors;
using iText.Kernel.Pdf;
@@ -11,8 +10,10 @@ using iText.Layout.Element;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
using Newtonsoft.Json;
+using static EnvelopeGenerator.Jobs.FinalizeDocument.FinalizeDocumentExceptions;
+using LayoutImage = iText.Layout.Element.Image;
-namespace EnvelopeGenerator.CommonServices.Jobs.FinalizeDocument;
+namespace EnvelopeGenerator.Jobs.FinalizeDocument;
public class PDFBurner
{
@@ -110,17 +111,20 @@ public class PDFBurner
}
var page = pdf.GetPage(annotation.pageIndex + 1);
- var canvas = new PdfCanvas(page);
var bounds = annotation.bbox.Select(ToInches).ToList();
- var x = bounds[0];
- var y = bounds[1];
- var width = bounds[2];
- var height = bounds[3];
+ var x = (float)bounds[0];
+ var y = (float)bounds[1];
+ var width = (float)bounds[2];
+ var height = (float)bounds[3];
var imageBytes = Convert.FromBase64String(attachment.binary);
var imageData = ImageDataFactory.Create(imageBytes);
- canvas.AddImageAt(imageData, x, y, false)
- .ScaleToFit(width, height);
+ var image = new LayoutImage(imageData)
+ .ScaleAbsolute(width, height)
+ .SetFixedPosition(annotation.pageIndex + 1, x, y);
+
+ using var canvas = new Canvas(new PdfCanvas(page), page.GetPageSize());
+ canvas.Add(image);
}
private void AddInkAnnotation(PdfDocument pdf, Annotation annotation)
@@ -159,21 +163,31 @@ public class PDFBurner
private void AddFormFieldValue(PdfDocument pdf, Annotation annotation, string value)
{
var bounds = annotation.bbox.Select(ToInches).ToList();
- var x = bounds[0];
- var y = bounds[1];
- var width = bounds[2];
- var height = bounds[3];
+ var x = (float)bounds[0];
+ var y = (float)bounds[1];
+ var width = (float)bounds[2];
+ var height = (float)bounds[3];
var page = pdf.GetPage(annotation.pageIndex + 1);
var canvas = new Canvas(new PdfCanvas(page), page.GetPageSize());
- canvas.ShowTextAligned(new Paragraph(value)
- .SetFontSize(_pdfBurnerParams.FontSize)
- .SetFontColor(ColorConstants.BLACK)
- .SetFontFamily(_pdfBurnerParams.FontName)
- .SetItalic(_pdfBurnerParams.FontStyle.HasFlag(FontStyle.Italic))
- .SetBold(_pdfBurnerParams.FontStyle.HasFlag(FontStyle.Bold)),
- x + _pdfBurnerParams.TopMargin,
- y + _pdfBurnerParams.YOffset,
+ var paragraph = new Paragraph(value)
+ .SetFontSize(_pdfBurnerParams.FontSize)
+ .SetFontColor(ColorConstants.BLACK)
+ .SetFontFamily(_pdfBurnerParams.FontName);
+
+ if (_pdfBurnerParams.FontStyle.HasFlag(FontStyle.Italic))
+ {
+ paragraph.SetItalic();
+ }
+
+ if (_pdfBurnerParams.FontStyle.HasFlag(FontStyle.Bold))
+ {
+ paragraph.SetBold();
+ }
+
+ canvas.ShowTextAligned(paragraph,
+ x + (float)_pdfBurnerParams.TopMargin,
+ y + (float)_pdfBurnerParams.YOffset,
annotation.pageIndex + 1,
iText.Layout.Properties.TextAlignment.LEFT,
iText.Layout.Properties.VerticalAlignment.TOP,
diff --git a/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/PDFBurnerParams.cs b/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/PDFBurnerParams.cs
index f708ca11..0b9536fa 100644
--- a/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/PDFBurnerParams.cs
+++ b/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/PDFBurnerParams.cs
@@ -1,7 +1,7 @@
using System.Collections.Generic;
using System.Drawing;
-namespace EnvelopeGenerator.CommonServices.Jobs.FinalizeDocument;
+namespace EnvelopeGenerator.Jobs.FinalizeDocument;
public class PDFBurnerParams
{
diff --git a/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/PDFMerger.cs b/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/PDFMerger.cs
index 134c20be..2306fac7 100644
--- a/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/PDFMerger.cs
+++ b/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/PDFMerger.cs
@@ -1,11 +1,11 @@
using System.IO;
-using EnvelopeGenerator.CommonServices.Jobs.FinalizeDocument.FinalizeDocumentExceptions;
using iText.Kernel.Pdf;
using iText.Kernel.Utils;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
+using static EnvelopeGenerator.Jobs.FinalizeDocument.FinalizeDocumentExceptions;
-namespace EnvelopeGenerator.CommonServices.Jobs.FinalizeDocument;
+namespace EnvelopeGenerator.Jobs.FinalizeDocument;
public class PDFMerger
{
diff --git a/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/ReportCreator.cs b/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/ReportCreator.cs
index 5714deb2..3ba56c73 100644
--- a/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/ReportCreator.cs
+++ b/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/ReportCreator.cs
@@ -1,15 +1,15 @@
using System.Data;
using System.IO;
-using EnvelopeGenerator.CommonServices.Jobs.FinalizeDocument.FinalizeDocumentExceptions;
using EnvelopeGenerator.Domain.Entities;
using iText.Kernel.Pdf;
-using iText.Layout;
using iText.Layout.Element;
using Microsoft.Data.SqlClient;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
+using static EnvelopeGenerator.Jobs.FinalizeDocument.FinalizeDocumentExceptions;
+using LayoutDocument = iText.Layout.Document;
-namespace EnvelopeGenerator.CommonServices.Jobs.FinalizeDocument;
+namespace EnvelopeGenerator.Jobs.FinalizeDocument;
public class ReportCreator
{
@@ -32,7 +32,7 @@ public class ReportCreator
using var stream = new MemoryStream();
using var writer = new PdfWriter(stream);
using var pdf = new PdfDocument(writer);
- using var document = new Document(pdf);
+ using var document = new LayoutDocument(pdf);
document.Add(new Paragraph("Envelope Finalization Report").SetFontSize(16));
document.Add(new Paragraph($"Envelope Id: {envelope.Id}"));
diff --git a/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/ReportItem.cs b/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/ReportItem.cs
index d81645c7..c8e0d52e 100644
--- a/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/ReportItem.cs
+++ b/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/ReportItem.cs
@@ -1,7 +1,7 @@
using EnvelopeGenerator.Domain.Constants;
using EnvelopeGenerator.Domain.Entities;
-namespace EnvelopeGenerator.CommonServices.Jobs.FinalizeDocument;
+namespace EnvelopeGenerator.Jobs.FinalizeDocument;
public class ReportItem
{
diff --git a/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/ReportSource.cs b/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/ReportSource.cs
index 5cc3f12d..47afd920 100644
--- a/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/ReportSource.cs
+++ b/EnvelopeGenerator.Jobs/Jobs/FinalizeDocument/ReportSource.cs
@@ -1,6 +1,6 @@
using System.Collections.Generic;
-namespace EnvelopeGenerator.CommonServices.Jobs.FinalizeDocument;
+namespace EnvelopeGenerator.Jobs.FinalizeDocument;
public class ReportSource
{