mirror of
https://github.com/collinbarrett/FilterLists.git
synced 2026-03-11 09:04:27 +00:00
parent
1b71564505
commit
d566db9e59
2 changed files with 7 additions and 8 deletions
|
|
@ -59,7 +59,7 @@ private async Task SaveAsync()
|
|||
var lines = await TryGetLines();
|
||||
if (lines != null)
|
||||
{
|
||||
await SaveInBatches(lines);
|
||||
SaveInBatches(lines);
|
||||
await DedupSnapshotRules();
|
||||
await SetSuccessful();
|
||||
}
|
||||
|
|
@ -105,19 +105,19 @@ private async Task<IEnumerable<string>> GetLines()
|
|||
return lines;
|
||||
}
|
||||
|
||||
private async Task SaveInBatches(IEnumerable<string> lines)
|
||||
private void SaveInBatches(IEnumerable<string> lines)
|
||||
{
|
||||
var snapshotBatches = CreateBatches(lines);
|
||||
await SaveBatches(snapshotBatches);
|
||||
SaveBatches(snapshotBatches);
|
||||
}
|
||||
|
||||
private IEnumerable<SnapshotBatch> CreateBatches(IEnumerable<string> lines) =>
|
||||
lines.Batch(BatchSize).Select(b => new SnapshotBatch(dbContext, b, snapEntity));
|
||||
|
||||
private static async Task SaveBatches(IEnumerable<SnapshotBatch> batches)
|
||||
private static void SaveBatches(IEnumerable<SnapshotBatch> batches)
|
||||
{
|
||||
foreach (var batch in batches)
|
||||
await batch.SaveAsync();
|
||||
batch.Save();
|
||||
}
|
||||
|
||||
private async Task DedupSnapshotRules()
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using FilterLists.Data;
|
||||
using FilterLists.Data.Entities;
|
||||
using FilterLists.Data.Entities.Junctions;
|
||||
|
|
@ -22,14 +21,14 @@ public SnapshotBatch(FilterListsDbContext dbContext, IEnumerable<string> lines,
|
|||
this.snapEntity = snapEntity;
|
||||
}
|
||||
|
||||
public async Task SaveAsync()
|
||||
public void Save()
|
||||
{
|
||||
var existingRules = GetExistingRules();
|
||||
var newRules = CreateNewRules(existingRules);
|
||||
dbContext.Rules.AddRange(newRules);
|
||||
var rules = existingRules.Concat(newRules);
|
||||
AddSnapshotRules(rules);
|
||||
await dbContext.SaveChangesAsync();
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
|
||||
private IQueryable<Rule> GetExistingRules() =>
|
||||
|
|
|
|||
Loading…
Reference in a new issue