fix save Invoice

This commit is contained in:
zzdrojewskipaw
2025-11-28 17:37:04 +01:00
parent f31176cfc9
commit 81f6d83fd0

View File

@@ -33,6 +33,8 @@ public class InvoiceSyncService(HttpClient httpClient, BimAIDbContext db, IConfi
var invoices = dataElement.EnumerateArray(); var invoices = dataElement.EnumerateArray();
var now = DateTimeOffset.UtcNow.ToUnixTimeSeconds(); var now = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
var processedCount = 0;
var batchSize = 20;
foreach (var invoiceJson in invoices) foreach (var invoiceJson in invoices)
{ {
@@ -115,6 +117,14 @@ public class InvoiceSyncService(HttpClient httpClient, BimAIDbContext db, IConfi
existing.UpdatedAt = DateTime.UtcNow; existing.UpdatedAt = DateTime.UtcNow;
Console.WriteLine($"[SYNC] Updated invoice: {documentNo} from {source}"); Console.WriteLine($"[SYNC] Updated invoice: {documentNo} from {source}");
} }
processedCount++;
if (processedCount % batchSize == 0)
{
await db.SaveChangesAsync();
Console.WriteLine($"[SYNC] Saved batch of {batchSize} invoices. Total processed: {processedCount}");
}
} }
catch (Exception ex) catch (Exception ex)
{ {
@@ -122,6 +132,9 @@ public class InvoiceSyncService(HttpClient httpClient, BimAIDbContext db, IConfi
} }
} }
await db.SaveChangesAsync();
Console.WriteLine($"[SYNC] Saved remaining invoices. Total processed: {processedCount}");
syncState.LastSynced = now; syncState.LastSynced = now;
if (db.SyncStates.FirstOrDefault(x => x.Entity == "Invoice") == null) if (db.SyncStates.FirstOrDefault(x => x.Entity == "Invoice") == null)
{ {
@@ -131,6 +144,7 @@ public class InvoiceSyncService(HttpClient httpClient, BimAIDbContext db, IConfi
{ {
db.SyncStates.Update(syncState); db.SyncStates.Update(syncState);
} }
Console.WriteLine("Before final SaveChangesAsync");
await db.SaveChangesAsync(); await db.SaveChangesAsync();
Console.WriteLine("[SYNC] Invoice sync completed"); Console.WriteLine("[SYNC] Invoice sync completed");
} }