fix save Invoice
This commit is contained in:
@@ -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");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user