- Introduced PDFBurnerParams configuration for concurrency limit. - Added SemaphoreSlim to handle concurrent PDF burning for envelopes. - Updated job to call _mediator.BurnPdf for each envelope with error handling. - Preserved logging of job execution and envelope UUIDs.
78 lines
1.7 KiB
C#
78 lines
1.7 KiB
C#
using EnvelopeGenerator.Application.Common.Interfaces.Model;
|
|
using System.Diagnostics.CodeAnalysis;
|
|
using System.Drawing;
|
|
|
|
namespace EnvelopeGenerator.Application.Common.Configurations;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public class PDFBurnerParams : ITextStyle
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public int ConcurrencyLimit { get; set; } = 5;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public IEnumerable<string> IgnoredLabels { get; set; } = new List<string>
|
|
{
|
|
"Date", "Datum", "ZIP", "PLZ", "Place", "Ort", "Position", "Stellung"
|
|
};
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
|
|
public double TopMargin { get; set; } = 0.1;
|
|
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public double YOffset { get; set; } = -0.3;
|
|
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public string FontName { get; set; } = "Arial";
|
|
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public int FontSize { get; set; } = 8;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
[SuppressMessage("Interoperability", "CA1416:Validate platform compatibility", Justification = "<Pending>")]
|
|
public FontStyle FontStyle { get; set; } = FontStyle.Italic;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public Dictionary<string, int> IndexOfAnnot { get; init; } = new()
|
|
{
|
|
{ string.Empty, 0 },
|
|
{ "seal", 0 },
|
|
{ "position", 1 },
|
|
{ "city", 2 },
|
|
{ "date", 3 }
|
|
};
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public int DefaultIndexOfAnnot { get; set; } = 0;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="name"></param>
|
|
/// <returns></returns>
|
|
public int GetAnnotationIndex(string name) => IndexOfAnnot.TryGetValue(name, out var value) ? value : DefaultIndexOfAnnot;
|
|
} |