30 lines
786 B
C#
30 lines
786 B
C#
using DXApp.TemplateKitProject.Data;
|
|
using DXApp.TemplateKitProject.Models;
|
|
|
|
namespace DXApp.TemplateKitProject.Services;
|
|
|
|
public class ZugferdImportService(
|
|
ZugferdExtractorService extractor,
|
|
ZugferdParserService parser,
|
|
AppDbContext db,
|
|
ILogger<ZugferdImportService> logger)
|
|
{
|
|
public async Task<ZugferdInvoice?> ImportAsync(Stream pdfStream, string sourceType)
|
|
{
|
|
var xml = extractor.ExtractXml(pdfStream);
|
|
|
|
if (xml is null)
|
|
{
|
|
logger.LogWarning("Kein ZUGFeRD-XML in der PDF-Datei gefunden.");
|
|
return null;
|
|
}
|
|
|
|
var invoice = parser.Parse(xml);
|
|
invoice.SourceType = sourceType;
|
|
|
|
db.ZugferdInvoices.Add(invoice);
|
|
await db.SaveChangesAsync();
|
|
|
|
return invoice;
|
|
}
|
|
} |