mirror of
https://github.com/collinbarrett/FilterLists.git
synced 2026-03-11 09:04:27 +00:00
parent
72761b624b
commit
7e85c96b65
1 changed files with 14 additions and 2 deletions
|
|
@ -1,4 +1,5 @@
|
|||
using System.Collections.Generic;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using FilterLists.Data;
|
||||
|
|
@ -32,12 +33,23 @@ public async Task SaveAsync()
|
|||
await dbContext.SaveChangesAsync();
|
||||
}
|
||||
|
||||
private IQueryable<Rule> GetExistingRules() => dbContext.Rules.Where(r => lines.Contains(r.Raw));
|
||||
private IQueryable<Rule> GetExistingRules()
|
||||
{
|
||||
var lineRules = lines.Select(l => new Rule {Raw = l});
|
||||
return dbContext.Rules.Intersect(lineRules, new RuleRawEqualityComparer());
|
||||
}
|
||||
|
||||
private List<Rule> CreateNewRules(IQueryable<Rule> existingRules) =>
|
||||
lines.Except(existingRules.Select(r => r.Raw)).Select(r => new Rule {Raw = r}).ToList();
|
||||
|
||||
private void AddSnapshotRules(IQueryable<Rule> rules) =>
|
||||
snapEntity.AddedSnapshotRules.AddRange(rules.Select(r => new SnapshotRule {Rule = r}));
|
||||
|
||||
private class RuleRawEqualityComparer : IEqualityComparer<Rule>
|
||||
{
|
||||
public bool Equals(Rule x, Rule y) => x?.Raw == y?.Raw;
|
||||
|
||||
public int GetHashCode(Rule obj) => throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue