From 254af58933751ca4d04a2621c3b384b57269e7bc Mon Sep 17 00:00:00 2001 From: Collin Barrett Date: Wed, 17 Jan 2018 19:44:20 -0600 Subject: [PATCH] add License seed, genericize Seed() --- src/FilterLists.Api/DbContextExtension.cs | 13 +-- .../{FilterLists.json => FilterList.json} | 0 src/FilterLists.Api/Seed/FilterList.sql | 17 ++++ src/FilterLists.Api/Seed/License.json | 79 +++++++++++++++++++ src/FilterLists.Api/Seed/License.sql | 8 ++ 5 files changed, 111 insertions(+), 6 deletions(-) rename src/FilterLists.Api/Seed/{FilterLists.json => FilterList.json} (100%) create mode 100644 src/FilterLists.Api/Seed/FilterList.sql create mode 100644 src/FilterLists.Api/Seed/License.json create mode 100644 src/FilterLists.Api/Seed/License.sql diff --git a/src/FilterLists.Api/DbContextExtension.cs b/src/FilterLists.Api/DbContextExtension.cs index aad30fd62..bf335af26 100644 --- a/src/FilterLists.Api/DbContextExtension.cs +++ b/src/FilterLists.Api/DbContextExtension.cs @@ -29,15 +29,16 @@ public static bool AllMigrationsApplied(this DbContext context) public static void EnsureSeeded(this FilterListsDbContext context) { - SeedFilterLists(context); + if (context.FilterLists.Any()) return; + Seed(context); + Seed(context); } - private static void SeedFilterLists(FilterListsDbContext context) + private static void Seed(DbContext context) { - if (context.FilterLists.Any()) return; - var types = JsonConvert.DeserializeObject>( - File.ReadAllText(SeedDirectory + Path.DirectorySeparatorChar + "FilterLists.json")); - context.AddRange(types); + var rows = JsonConvert.DeserializeObject>( + File.ReadAllText(SeedDirectory + Path.DirectorySeparatorChar + typeof(T) + ".json")); + context.AddRange(rows); context.SaveChanges(); } } diff --git a/src/FilterLists.Api/Seed/FilterLists.json b/src/FilterLists.Api/Seed/FilterList.json similarity index 100% rename from src/FilterLists.Api/Seed/FilterLists.json rename to src/FilterLists.Api/Seed/FilterList.json diff --git a/src/FilterLists.Api/Seed/FilterList.sql b/src/FilterLists.Api/Seed/FilterList.sql new file mode 100644 index 000000000..7c9cb5c5c --- /dev/null +++ b/src/FilterLists.Api/Seed/FilterList.sql @@ -0,0 +1,17 @@ +select + Id, + Description, + DescriptionSourceUrl, + DiscontinuedDate, + DonateUrl, + EmailAddress, + ForumUrl, + HomeUrl, + IssuesUrl, + LicenseId, + Name, + SubmissionUrl, + SyntaxId, + ViewUrl +from + filterlists \ No newline at end of file diff --git a/src/FilterLists.Api/Seed/License.json b/src/FilterLists.Api/Seed/License.json new file mode 100644 index 000000000..4f27288ed --- /dev/null +++ b/src/FilterLists.Api/Seed/License.json @@ -0,0 +1,79 @@ +[ + { + "Id": 1, + "DescriptionUrl": "https://creativecommons.org/licenses/by-nc-nd/4.0/", + "Name": "CC BY-NC-ND 4.0", + "PermissiveAdaptation": 0, + "PermissiveCommercial": 0 + }, + { + "Id": 2, + "DescriptionUrl": "https://opensource.org/licenses/MIT", + "Name": "The MIT License", + "PermissiveAdaptation": 1, + "PermissiveCommercial": 1 + }, + { + "Id": 3, + "DescriptionUrl": null, + "Name": "Restricted (General)", + "PermissiveAdaptation": 0, + "PermissiveCommercial": 0 + }, + { + "Id": 4, + "DescriptionUrl": "https://www.gnu.org/licenses/gpl-3.0.en.html", + "Name": "GPLv3", + "PermissiveAdaptation": 1, + "PermissiveCommercial": 1 + }, + { + "Id": 5, + "DescriptionUrl": "https://en.wikipedia.org/wiki/All_rights_reserved", + "Name": "All Rights Reserved (Default)", + "PermissiveAdaptation": 0, + "PermissiveCommercial": 0 + }, + { + "Id": 6, + "DescriptionUrl": "https://creativecommons.org/licenses/by-nc-sa/3.0/", + "Name": "CC BY-NC-SA 3.0", + "PermissiveAdaptation": 1, + "PermissiveCommercial": 0 + }, + { + "Id": 7, + "DescriptionUrl": null, + "Name": "Permissive (General)", + "PermissiveAdaptation": 1, + "PermissiveCommercial": 1 + }, + { + "Id": 8, + "DescriptionUrl": "https://creativecommons.org/licenses/by-sa/4.0/", + "Name": "CC BY-SA 4.0", + "PermissiveAdaptation": 1, + "PermissiveCommercial": 1 + }, + { + "Id": 9, + "DescriptionUrl": "https://creativecommons.org/licenses/by-nc-sa/4.0/", + "Name": "CC BY-NC-SA 4.0", + "PermissiveAdaptation": 1, + "PermissiveCommercial": 0 + }, + { + "Id": 10, + "DescriptionUrl": "https://opensource.org/licenses/BSD-3-Clause", + "Name": "BSD-3-Clause", + "PermissiveAdaptation": 1, + "PermissiveCommercial": 1 + }, + { + "Id": 11, + "DescriptionUrl": "https://unlicense.org/", + "Name": "The Unlicense", + "PermissiveAdaptation": 1, + "PermissiveCommercial": 1 + } +] \ No newline at end of file diff --git a/src/FilterLists.Api/Seed/License.sql b/src/FilterLists.Api/Seed/License.sql new file mode 100644 index 000000000..08d629f9f --- /dev/null +++ b/src/FilterLists.Api/Seed/License.sql @@ -0,0 +1,8 @@ +SELECT + Id, + DescriptionUrl, + Name, + PermissiveAdaptation, + PermissiveCommercial +FROM + filterlistsdata.licenses; \ No newline at end of file