Introduced `ZugferdController` to handle ZUGFeRD-related operations, including detection and extraction of ZUGFeRD XML from PDFs via file upload or Base64-encoded payloads. Integrated `MediatR` for query/command handling. Added `ZugferdSettings` for configurable file names and patterns, and updated `appsettings.json` and `Program.cs` to support this configuration. Implemented `HasZugferdQuery` and `ExtractZugferdCommand` with their respective handlers and validators. Added DTOs (`ZugferdCheckResult`, `ZugferdExtractionResult`) for operation results. Included `ZUGFeRD-Example.pdf` for testing and integrated `Serilog.Ui.Core.Extensions` for logging.
30 lines
770 B
C#
30 lines
770 B
C#
namespace DocumentOperator.Application.Common.Configuration;
|
|
|
|
/// <summary>
|
|
/// Configuration settings for ZUGFeRD/Factur-X/XRechnung detection
|
|
/// </summary>
|
|
public class ZugferdSettings
|
|
{
|
|
/// <summary>
|
|
/// Exact ZUGFeRD/Factur-X/XRechnung file names to check (case-insensitive)
|
|
/// </summary>
|
|
public List<string> ZugferdFileNames { get; set; } = new()
|
|
{
|
|
"factur-x.xml",
|
|
"zugferd-invoice.xml",
|
|
"ZUGFeRD-invoice.xml",
|
|
"xrechnung.xml"
|
|
};
|
|
|
|
/// <summary>
|
|
/// Partial filename patterns for ZUGFeRD detection (case-insensitive)
|
|
/// </summary>
|
|
public List<string> ZugferdFileNamePatterns { get; set; } = new()
|
|
{
|
|
"factur",
|
|
"zugferd",
|
|
"xrechnung",
|
|
"peppol"
|
|
};
|
|
}
|