minor cleanup from last refactor

This commit is contained in:
Collin M. Barrett 2018-02-01 10:18:11 -06:00
parent b6add83ec4
commit 7332a0ca84
2 changed files with 4 additions and 6 deletions

View file

@ -35,7 +35,7 @@ private async Task<List<FilterListViewUrlDto>> GetNextListsToScrape(int batchSiz
private async Task<IEnumerable<Snapshot>> GetSnapshots(IEnumerable<FilterListViewUrlDto> lists)
{
return await Task.WhenAll(lists
.Select(async list => new Snapshot(dbContext, await TryGetContent(list.ViewUrl), list.Id))
.Select(async list => new Snapshot(dbContext, list.Id, await TryGetContent(list.ViewUrl)))
.Where(x => x.Result.HasRules));
}

View file

@ -15,7 +15,7 @@ public class Snapshot
private string[] rawRules;
public Snapshot(FilterListsDbContext dbContext, string content, int filterListId)
public Snapshot(FilterListsDbContext dbContext, int filterListId, string content)
{
this.dbContext = dbContext;
this.filterListId = filterListId;
@ -40,12 +40,10 @@ public async Task AddOrUpdateRules()
var preExistingSnapshotRules = dbContext.Rules.Where(x => rawRules.Contains(x.Raw));
var newSnapshotRawRules = rawRules.Except(preExistingSnapshotRules.Select(x => x.Raw));
var newSnapshotRules = newSnapshotRawRules.Select(newSnapshotRawRule => new Rule {Raw = newSnapshotRawRule}).ToList();
dbContext.Rules.AddRange(newSnapshotRules);
// remove deleted FilterListRules
var preExistingFilterListRules = dbContext.FilterListRules.Where(x => x.FilterListId == filterListId);
var deletedFilterListRules =
preExistingFilterListRules.Where(x => !preExistingSnapshotRules.Select(y => y.Id).Contains(x.RuleId));
var deletedFilterListRules = preExistingFilterListRules.Where(x => !preExistingSnapshotRules.Select(y => y.Id).Contains(x.RuleId));
// add FilterListRules for pre-existing Rules
var preExistingSnapshotFilterListRules = preExistingSnapshotRules.Select(newSnapshotRule =>
@ -64,7 +62,7 @@ public async Task AddOrUpdateRules()
// update ScrapedDateUtc
list.ScrapedDateUtc = DateTime.UtcNow;
dbContext.Rules.AddRange(newSnapshotRules);
dbContext.FilterListRules.RemoveRange(deletedFilterListRules);
dbContext.FilterListRules.AddRange(preExistingSnapshotFilterListRules);
dbContext.FilterListRules.AddRange(newFilterListRules);