diff --git a/src/FilterLists.Services/Snapshot/Snapshot.cs b/src/FilterLists.Services/Snapshot/Snapshot.cs index fe52db0c0..3d4bc04af 100644 --- a/src/FilterLists.Services/Snapshot/Snapshot.cs +++ b/src/FilterLists.Services/Snapshot/Snapshot.cs @@ -62,7 +62,7 @@ private async Task SaveAsync() var lines = await TryGetLines(); if (lines != null) { - SaveInBatches(lines); + await SaveInBatches(lines); await DedupSnapshotRules(); await SetSuccessful(); } @@ -110,19 +110,19 @@ private async Task> GetLines() return lines; } - private void SaveInBatches(IEnumerable lines) + private async Task SaveInBatches(IEnumerable lines) { var snapshotBatches = CreateBatches(lines); - SaveBatches(snapshotBatches); + await SaveBatches(snapshotBatches); } private IEnumerable CreateBatches(IEnumerable lines) => lines.Batch(BatchSize).Select(b => new SnapshotBatch(dbContext, b, snapEntity)); - private static void SaveBatches(IEnumerable batches) + private static async Task SaveBatches(IEnumerable batches) { foreach (var batch in batches) - batch.Save(); + await batch.SaveAsync(); } private async Task DedupSnapshotRules() diff --git a/src/FilterLists.Services/Snapshot/SnapshotBatch.cs b/src/FilterLists.Services/Snapshot/SnapshotBatch.cs index b31db309b..a1af7099e 100644 --- a/src/FilterLists.Services/Snapshot/SnapshotBatch.cs +++ b/src/FilterLists.Services/Snapshot/SnapshotBatch.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; using FilterLists.Data; using FilterLists.Data.Entities; using FilterLists.Data.Entities.Junctions; @@ -21,14 +22,14 @@ public SnapshotBatch(FilterListsDbContext dbContext, IEnumerable lines, this.snapEntity = snapEntity; } - public void Save() + public async Task SaveAsync() { var existingRules = GetExistingRules(); var newRules = CreateNewRules(existingRules); dbContext.Rules.AddRange(newRules); var rules = existingRules.Concat(newRules); AddSnapshotRules(rules); - dbContext.SaveChanges(); + await dbContext.SaveChangesAsync(); } private IQueryable GetExistingRules() =>