diff --git a/src/FilterLists.Data/Seed/Extensions/SeedFilterListsDbContext.cs b/src/FilterLists.Data/Seed/Extensions/SeedFilterListsDbContext.cs index d71c8e95d..810232c5e 100644 --- a/src/FilterLists.Data/Seed/Extensions/SeedFilterListsDbContext.cs +++ b/src/FilterLists.Data/Seed/Extensions/SeedFilterListsDbContext.cs @@ -102,7 +102,8 @@ private static async Task InsertOnDuplicateKeyUpdate(DbContext dbContex private static List GetPropertiesLessValueGeneratedTimestamps(IEntityType entityType) => entityType.GetProperties() - .Where(x => !new List {"CreatedDateUtc", "ModifiedDateUtc"}.Contains(x.Name)) + .Where(x => + !new List {"CreatedDateUtc", "ModifiedDateUtc", "DiscontinuedDate"}.Contains(x.Name)) .ToList(); private static string CreateValues(IEnumerable seed, diff --git a/src/FilterLists.Services/Snapshot/Snapshot.cs b/src/FilterLists.Services/Snapshot/Snapshot.cs index 3265aa8d2..7bc35c937 100644 --- a/src/FilterLists.Services/Snapshot/Snapshot.cs +++ b/src/FilterLists.Services/Snapshot/Snapshot.cs @@ -123,6 +123,7 @@ private async Task GetLinesFromSource(HttpResponseMessage response) await SetWasUpdated(); if (SnapEntity.WasUpdated) { + await UpdateDiscontinuedDate(); memoryStream.Position = 0; if (ListUrl.EndsWith(".7z")) await GetLinesFrom7Zip(memoryStream); @@ -152,6 +153,13 @@ await dbContext.Snapshots .Select(s => s.Md5Checksum) .FirstOrDefaultAsync() ?? Array.Empty(); + private async Task UpdateDiscontinuedDate() + { + var list = await dbContext.FilterLists.FirstOrDefaultAsync(l => l.Id == List.Id); + if (!(list.DiscontinuedDate is null) && DateTime.Now > list.DiscontinuedDate) + list.DiscontinuedDate = null; + } + private async Task GetLinesFrom7Zip(Stream stream) { using (var archive = SevenZipArchive.Open(stream))