diff --git a/src/FilterLists.Data/Seed/Extensions/SeedFilterListsDbContext.cs b/src/FilterLists.Data/Seed/Extensions/SeedFilterListsDbContext.cs index 4de2049f8..1ee28876c 100644 --- a/src/FilterLists.Data/Seed/Extensions/SeedFilterListsDbContext.cs +++ b/src/FilterLists.Data/Seed/Extensions/SeedFilterListsDbContext.cs @@ -22,8 +22,11 @@ public static async Task SeedOrUpdateAsync(FilterListsDbContext dbContext, strin await SeedOrUpdate(dbContext, dataPath); await SeedOrUpdate(dbContext, dataPath); await SeedOrUpdate(dbContext, dataPath); + await SeedOrUpdate(dbContext, dataPath); await SetDefaultLicenseIdAsync(dbContext); + await SeedFilterListDates(dbContext, dataPath); + await SeedOrUpdate(dbContext, dataPath); await SeedOrUpdate(dbContext, dataPath); await SeedOrUpdate(dbContext, dataPath); @@ -167,5 +170,33 @@ private static async Task SetDefaultLicenseIdAsync(DbContext dbContext) dbContext.UpdateRange(listsWithoutLicense); await dbContext.SaveChangesAsync(); } + + private static async Task SeedFilterListDates(DbContext dbContext, string dataPath) + { + var seed = GetSeed(dataPath); + var lists = dbContext.Set() + .ToList() + .Select(l => + { + var seedList = seed.FirstOrDefault(s => s.Id == l.Id); + l.PublishedDate = seedList?.PublishedDate is DateTime seedPublishedDate + ? l.PublishedDate is DateTime currentPublishedDate + ? seedPublishedDate < currentPublishedDate + ? seedPublishedDate + : currentPublishedDate + : seedPublishedDate + : l.PublishedDate; + l.UpdatedDate = seedList?.UpdatedDate is DateTime seedUpdatedDate + ? l.UpdatedDate is DateTime currentUpdatedDate + ? seedUpdatedDate < currentUpdatedDate + ? currentUpdatedDate + : seedUpdatedDate + : seedUpdatedDate + : l.UpdatedDate; + return l; + }); + dbContext.UpdateRange(lists); + await dbContext.SaveChangesAsync(); + } } } \ No newline at end of file