Add project files.
This commit is contained in:
30
DXApp.TemplateKitProject/Services/ZugferdImportService.cs
Normal file
30
DXApp.TemplateKitProject/Services/ZugferdImportService.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user