diff --git a/src/FilterLists.Services/Extensions/CollectionExtensions.cs b/src/FilterLists.Services/Extensions/CollectionExtensions.cs index 2c65a12c0..c22eb29d0 100644 --- a/src/FilterLists.Services/Extensions/CollectionExtensions.cs +++ b/src/FilterLists.Services/Extensions/CollectionExtensions.cs @@ -9,5 +9,15 @@ public static void AddIfNotNullOrEmpty(this ICollection set, string item if (!string.IsNullOrEmpty(item)) set.Add(item); } + + //https://stackoverflow.com/a/26360010/2343739 + public static void AddRange(this ICollection destination, IEnumerable source) + { + if (destination is List list) + list.AddRange(source); + else + foreach (var item in source) + destination.Add(item); + } } } \ No newline at end of file diff --git a/src/FilterLists.Services/Snapshot/Batch.cs b/src/FilterLists.Services/Snapshot/Batch.cs index c53467780..deb710de7 100644 --- a/src/FilterLists.Services/Snapshot/Batch.cs +++ b/src/FilterLists.Services/Snapshot/Batch.cs @@ -4,6 +4,7 @@ using FilterLists.Data; using FilterLists.Data.Entities; using FilterLists.Data.Entities.Junctions; +using FilterLists.Services.Extensions; namespace FilterLists.Services.Snapshot { @@ -38,7 +39,7 @@ private IQueryable GetOrCreateRules() private void CreateSnapRules(IQueryable rules) { var snapRules = rules.Select(r => new SnapshotRule {Rule = r}).ToList(); - snapEntity.SnapshotRules = snapRules; + snapEntity.SnapshotRules.AddRange(snapRules); } } } \ No newline at end of file diff --git a/src/FilterLists.Services/Snapshot/Snapshot.cs b/src/FilterLists.Services/Snapshot/Snapshot.cs index f681e6c2a..3da8a886a 100644 --- a/src/FilterLists.Services/Snapshot/Snapshot.cs +++ b/src/FilterLists.Services/Snapshot/Snapshot.cs @@ -7,6 +7,7 @@ using System.Threading; using System.Threading.Tasks; using FilterLists.Data; +using FilterLists.Data.Entities.Junctions; using FilterLists.Services.Extensions; using FilterLists.Services.Snapshot.Models; using JetBrains.Annotations; @@ -39,7 +40,7 @@ public Snapshot(BatchSizeService batchSizeService, FilterListsDbContext dbContex this.dbContext = dbContext; List = list; ListUrl = list.ViewUrl; - SnapEntity = new Data.Entities.Snapshot {FilterListId = list.Id}; + SnapEntity = new Data.Entities.Snapshot {FilterListId = list.Id, SnapshotRules = new List()}; this.uaString = uaString; telemetryClient = new TelemetryClient(); }