diff --git a/src/FilterLists.Api/DbContextExtension.cs b/src/FilterLists.Api/DbContextExtension.cs index 65efc1462..dd4341f48 100644 --- a/src/FilterLists.Api/DbContextExtension.cs +++ b/src/FilterLists.Api/DbContextExtension.cs @@ -29,18 +29,46 @@ public static bool AllMigrationsApplied(this DbContext context) public static void EnsureSeeded(this FilterListsDbContext context) { - if (context.FilterLists.Any()) return; - Seed(context); - Seed(context); - Seed(context); + SeedLicenses(context); + SeedSyntaxes(context); + SeedFilterLists(context); } + //TODO: fix generic method to remove duplication of entity-specific methods private static void Seed(DbContext context) { + //if (context.?.Any()) return; var rows = JsonConvert.DeserializeObject>( File.ReadAllText(SeedDirectory + Path.DirectorySeparatorChar + typeof(T).Name + ".json")); context.AddRange(rows); context.SaveChanges(); } + + private static void SeedLicenses(FilterListsDbContext context) + { + if (context.Licenses.Any()) return; + var types = JsonConvert.DeserializeObject>( + File.ReadAllText(SeedDirectory + Path.DirectorySeparatorChar + typeof(License).Name + ".json")); + context.AddRange(types); + context.SaveChanges(); + } + + private static void SeedSyntaxes(FilterListsDbContext context) + { + if (context.Syntaxes.Any()) return; + var types = JsonConvert.DeserializeObject>( + File.ReadAllText(SeedDirectory + Path.DirectorySeparatorChar + typeof(Syntax).Name + ".json")); + context.AddRange(types); + context.SaveChanges(); + } + + private static void SeedFilterLists(FilterListsDbContext context) + { + if (context.FilterLists.Any()) return; + var types = JsonConvert.DeserializeObject>( + File.ReadAllText(SeedDirectory + Path.DirectorySeparatorChar + typeof(FilterList).Name + ".json")); + context.AddRange(types); + context.SaveChanges(); + } } } \ No newline at end of file