From 5f9e31877c89c2ff420aeb974c778f45b18b80ba Mon Sep 17 00:00:00 2001 From: Collin Barrett Date: Thu, 18 Jan 2018 05:35:37 -0600 Subject: [PATCH] add remainder of seed data --- src/FilterLists.Api/DbContextExtension.cs | 108 +- src/FilterLists.Api/Seed/FilterListFork.json | 22 + .../Seed/FilterListLanguage.json | 30 + .../Seed/FilterListMaintainer.json | 170 ++ src/FilterLists.Api/Seed/Language.json | 1842 +++++++++++++++++ src/FilterLists.Api/Seed/Maintainer.json | 163 ++ src/FilterLists.Api/Seed/Merge.json | 94 + src/FilterLists.Api/Seed/Software.json | 20 + src/FilterLists.Api/Seed/SoftwareSyntax.json | 14 + src/FilterLists.Data/FilterListsDbContext.cs | 43 +- 10 files changed, 2492 insertions(+), 14 deletions(-) create mode 100644 src/FilterLists.Api/Seed/FilterListFork.json create mode 100644 src/FilterLists.Api/Seed/FilterListLanguage.json create mode 100644 src/FilterLists.Api/Seed/FilterListMaintainer.json create mode 100644 src/FilterLists.Api/Seed/Language.json create mode 100644 src/FilterLists.Api/Seed/Maintainer.json create mode 100644 src/FilterLists.Api/Seed/Merge.json create mode 100644 src/FilterLists.Api/Seed/Software.json create mode 100644 src/FilterLists.Api/Seed/SoftwareSyntax.json diff --git a/src/FilterLists.Api/DbContextExtension.cs b/src/FilterLists.Api/DbContextExtension.cs index dd4341f48..039e5bf0d 100644 --- a/src/FilterLists.Api/DbContextExtension.cs +++ b/src/FilterLists.Api/DbContextExtension.cs @@ -29,11 +29,29 @@ public static bool AllMigrationsApplied(this DbContext context) public static void EnsureSeeded(this FilterListsDbContext context) { + SeedEntities(context); + SeedJunctions(context); + } + + private static void SeedEntities(FilterListsDbContext context) + { + SeedLanguages(context); SeedLicenses(context); + SeedMaintainers(context); + SeedSoftware(context); SeedSyntaxes(context); SeedFilterLists(context); } + private static void SeedJunctions(FilterListsDbContext context) + { + SeedFilterListLanguages(context); + SeedFilterListMaintainers(context); + SeedForks(context); + SeedMerges(context); + SeedSoftwareSyntaxes(context); + } + //TODO: fix generic method to remove duplication of entity-specific methods private static void Seed(DbContext context) { @@ -44,6 +62,26 @@ private static void Seed(DbContext context) context.SaveChanges(); } + #region Entities + + 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(); + } + + private static void SeedLanguages(FilterListsDbContext context) + { + if (context.Languages.Any()) return; + var types = JsonConvert.DeserializeObject>( + File.ReadAllText(SeedDirectory + Path.DirectorySeparatorChar + typeof(Language).Name + ".json")); + context.AddRange(types); + context.SaveChanges(); + } + private static void SeedLicenses(FilterListsDbContext context) { if (context.Licenses.Any()) return; @@ -53,6 +91,24 @@ private static void SeedLicenses(FilterListsDbContext context) context.SaveChanges(); } + private static void SeedMaintainers(FilterListsDbContext context) + { + if (context.Maintainers.Any()) return; + var types = JsonConvert.DeserializeObject>( + File.ReadAllText(SeedDirectory + Path.DirectorySeparatorChar + typeof(Maintainer).Name + ".json")); + context.AddRange(types); + context.SaveChanges(); + } + + private static void SeedSoftware(FilterListsDbContext context) + { + if (context.Software.Any()) return; + var types = JsonConvert.DeserializeObject>( + File.ReadAllText(SeedDirectory + Path.DirectorySeparatorChar + typeof(Software).Name + ".json")); + context.AddRange(types); + context.SaveChanges(); + } + private static void SeedSyntaxes(FilterListsDbContext context) { if (context.Syntaxes.Any()) return; @@ -62,13 +118,57 @@ private static void SeedSyntaxes(FilterListsDbContext context) context.SaveChanges(); } - private static void SeedFilterLists(FilterListsDbContext context) + #endregion + + #region Junctions + + private static void SeedFilterListLanguages(FilterListsDbContext context) { - if (context.FilterLists.Any()) return; - var types = JsonConvert.DeserializeObject>( - File.ReadAllText(SeedDirectory + Path.DirectorySeparatorChar + typeof(FilterList).Name + ".json")); + if (context.FilterListLanguages.Any()) return; + var types = JsonConvert.DeserializeObject>( + File.ReadAllText( + SeedDirectory + Path.DirectorySeparatorChar + typeof(FilterListLanguage).Name + ".json")); context.AddRange(types); context.SaveChanges(); } + + private static void SeedFilterListMaintainers(FilterListsDbContext context) + { + if (context.FilterListMaintainers.Any()) return; + var types = JsonConvert.DeserializeObject>( + File.ReadAllText(SeedDirectory + Path.DirectorySeparatorChar + typeof(FilterListMaintainer).Name + + ".json")); + context.AddRange(types); + context.SaveChanges(); + } + + private static void SeedForks(FilterListsDbContext context) + { + if (context.Forks.Any()) return; + var types = JsonConvert.DeserializeObject>( + File.ReadAllText(SeedDirectory + Path.DirectorySeparatorChar + typeof(Fork).Name + ".json")); + context.AddRange(types); + context.SaveChanges(); + } + + private static void SeedMerges(FilterListsDbContext context) + { + if (context.Merges.Any()) return; + var types = JsonConvert.DeserializeObject>( + File.ReadAllText(SeedDirectory + Path.DirectorySeparatorChar + typeof(Merge).Name + ".json")); + context.AddRange(types); + context.SaveChanges(); + } + + private static void SeedSoftwareSyntaxes(FilterListsDbContext context) + { + if (context.SoftwareSyntaxes.Any()) return; + var types = JsonConvert.DeserializeObject>( + File.ReadAllText(SeedDirectory + Path.DirectorySeparatorChar + typeof(SoftwareSyntax).Name + ".json")); + context.AddRange(types); + context.SaveChanges(); + } + + #endregion } } \ No newline at end of file diff --git a/src/FilterLists.Api/Seed/FilterListFork.json b/src/FilterLists.Api/Seed/FilterListFork.json new file mode 100644 index 000000000..fc5e8b2c3 --- /dev/null +++ b/src/FilterLists.Api/Seed/FilterListFork.json @@ -0,0 +1,22 @@ +[ + { + "ForkFilterListId": 7, + "UpstreamFilterListId": 9 + }, + { + "ForkFilterListId": 8, + "UpstreamFilterListId": 9 + }, + { + "ForkFilterListId": 16, + "UpstreamFilterListId": 59 + }, + { + "ForkFilterListId": 16, + "UpstreamFilterListId": 99 + }, + { + "ForkFilterListId": 16, + "UpstreamFilterListId": 278 + } +] \ No newline at end of file diff --git a/src/FilterLists.Api/Seed/FilterListLanguage.json b/src/FilterLists.Api/Seed/FilterListLanguage.json new file mode 100644 index 000000000..0d748834c --- /dev/null +++ b/src/FilterLists.Api/Seed/FilterListLanguage.json @@ -0,0 +1,30 @@ +[ + { + "FilterListId": 20, + "LanguageId": 44 + }, + { + "FilterListId": 14, + "LanguageId": 122 + }, + { + "FilterListId": 1, + "LanguageId": 141 + }, + { + "FilterListId": 6, + "LanguageId": 141 + }, + { + "FilterListId": 15, + "LanguageId": 154 + }, + { + "FilterListId": 16, + "LanguageId": 154 + }, + { + "FilterListId": 12, + "LanguageId": 163 + } +] \ No newline at end of file diff --git a/src/FilterLists.Api/Seed/FilterListMaintainer.json b/src/FilterLists.Api/Seed/FilterListMaintainer.json new file mode 100644 index 000000000..d1b870116 --- /dev/null +++ b/src/FilterLists.Api/Seed/FilterListMaintainer.json @@ -0,0 +1,170 @@ +[ + { + "FilterListId": 1, + "MaintainerId": 2 + }, + { + "FilterListId": 2, + "MaintainerId": 3 + }, + { + "FilterListId": 3, + "MaintainerId": 4 + }, + { + "FilterListId": 4, + "MaintainerId": 5 + }, + { + "FilterListId": 5, + "MaintainerId": 6 + }, + { + "FilterListId": 6, + "MaintainerId": 8 + }, + { + "FilterListId": 7, + "MaintainerId": 9 + }, + { + "FilterListId": 8, + "MaintainerId": 9 + }, + { + "FilterListId": 9, + "MaintainerId": 9 + }, + { + "FilterListId": 10, + "MaintainerId": 10 + }, + { + "FilterListId": 12, + "MaintainerId": 11 + }, + { + "FilterListId": 12, + "MaintainerId": 12 + }, + { + "FilterListId": 14, + "MaintainerId": 12 + }, + { + "FilterListId": 12, + "MaintainerId": 13 + }, + { + "FilterListId": 14, + "MaintainerId": 13 + }, + { + "FilterListId": 15, + "MaintainerId": 18 + }, + { + "FilterListId": 16, + "MaintainerId": 18 + }, + { + "FilterListId": 17, + "MaintainerId": 19 + }, + { + "FilterListId": 18, + "MaintainerId": 20 + }, + { + "FilterListId": 307, + "MaintainerId": 20 + }, + { + "FilterListId": 19, + "MaintainerId": 21 + }, + { + "FilterListId": 308, + "MaintainerId": 21 + }, + { + "FilterListId": 20, + "MaintainerId": 22 + }, + { + "FilterListId": 23, + "MaintainerId": 23 + }, + { + "FilterListId": 24, + "MaintainerId": 23 + }, + { + "FilterListId": 25, + "MaintainerId": 23 + }, + { + "FilterListId": 26, + "MaintainerId": 23 + }, + { + "FilterListId": 37, + "MaintainerId": 23 + }, + { + "FilterListId": 75, + "MaintainerId": 23 + }, + { + "FilterListId": 76, + "MaintainerId": 23 + }, + { + "FilterListId": 77, + "MaintainerId": 23 + }, + { + "FilterListId": 121, + "MaintainerId": 23 + }, + { + "FilterListId": 122, + "MaintainerId": 23 + }, + { + "FilterListId": 123, + "MaintainerId": 23 + }, + { + "FilterListId": 124, + "MaintainerId": 23 + }, + { + "FilterListId": 125, + "MaintainerId": 23 + }, + { + "FilterListId": 126, + "MaintainerId": 23 + }, + { + "FilterListId": 127, + "MaintainerId": 23 + }, + { + "FilterListId": 128, + "MaintainerId": 23 + }, + { + "FilterListId": 129, + "MaintainerId": 23 + }, + { + "FilterListId": 130, + "MaintainerId": 23 + }, + { + "FilterListId": 27, + "MaintainerId": 24 + } +] \ No newline at end of file diff --git a/src/FilterLists.Api/Seed/Language.json b/src/FilterLists.Api/Seed/Language.json new file mode 100644 index 000000000..93a65d03f --- /dev/null +++ b/src/FilterLists.Api/Seed/Language.json @@ -0,0 +1,1842 @@ +[ + { + "Id": 1, + "Iso6391": "ab", + "Iso6392": "abk", + "Iso6392B": "abk", + "Iso6392T": "abk", + "Iso6393": "abk", + "LocalName": "Аҧсуа", + "Name": "Abkhaz" + }, + { + "Id": 2, + "Iso6391": "oc", + "Iso6392": "oci", + "Iso6392B": "oci", + "Iso6392T": "oci", + "Iso6393": "oci", + "LocalName": "Occitan", + "Name": "Occitan" + }, + { + "Id": 3, + "Iso6391": "oj", + "Iso6392": "oji", + "Iso6392B": "oji", + "Iso6392T": "oji", + "Iso6393": "oji", + "LocalName": "ᐊᓂᔑᓈᐯᒧᐎᓐ", + "Name": "Ojibwe" + }, + { + "Id": 4, + "Iso6391": "cu", + "Iso6392": "chu", + "Iso6392B": "chu", + "Iso6392T": "chu", + "Iso6393": "chu", + "LocalName": "Словѣ́ньскъ", + "Name": "Old Church Slavonic" + }, + { + "Id": 5, + "Iso6391": "om", + "Iso6392": "orm", + "Iso6392B": "orm", + "Iso6392T": "orm", + "Iso6393": "orm", + "LocalName": "Afaan Oromoo", + "Name": "Oromo" + }, + { + "Id": 6, + "Iso6391": "or", + "Iso6392": "ori", + "Iso6392B": "ori", + "Iso6392T": "ori", + "Iso6393": "ori", + "LocalName": "ଓଡି଼ଆ", + "Name": "Oriya" + }, + { + "Id": 7, + "Iso6391": "os", + "Iso6392": "oss", + "Iso6392B": "oss", + "Iso6392T": "oss", + "Iso6393": "oss", + "LocalName": "Ирон æвзаг", + "Name": "Ossetian" + }, + { + "Id": 8, + "Iso6391": "pa", + "Iso6392": "pan", + "Iso6392B": "pan", + "Iso6392T": "pan", + "Iso6393": "pan", + "LocalName": "ਪੰਜਾਬੀ", + "Name": "Panjabi" + }, + { + "Id": 9, + "Iso6391": "pi", + "Iso6392": "pli", + "Iso6392B": "pli", + "Iso6392T": "pli", + "Iso6393": "pli", + "LocalName": "पाऴि", + "Name": "Pāli" + }, + { + "Id": 10, + "Iso6391": "fa", + "Iso6392": "fas", + "Iso6392B": "per", + "Iso6392T": "fas", + "Iso6393": "fas", + "LocalName": "فارسی", + "Name": "Persian" + }, + { + "Id": 11, + "Iso6391": "pl", + "Iso6392": "pol", + "Iso6392B": "pol", + "Iso6392T": "pol", + "Iso6393": "pol", + "LocalName": "Polski", + "Name": "Polish" + }, + { + "Id": 12, + "Iso6391": "ps", + "Iso6392": "pus", + "Iso6392B": "pus", + "Iso6392T": "pus", + "Iso6393": "pus", + "LocalName": "پښتو", + "Name": "Pashto" + }, + { + "Id": 13, + "Iso6391": "pt", + "Iso6392": "por", + "Iso6392B": "por", + "Iso6392T": "por", + "Iso6393": "por", + "LocalName": "Português", + "Name": "Portuguese" + }, + { + "Id": 14, + "Iso6391": "qu", + "Iso6392": "que", + "Iso6392B": "que", + "Iso6392T": "que", + "Iso6393": "que", + "LocalName": "Runa Simi", + "Name": "Quechua" + }, + { + "Id": 15, + "Iso6391": "rm", + "Iso6392": "roh", + "Iso6392B": "roh", + "Iso6392T": "roh", + "Iso6393": "roh", + "LocalName": "Rumantsch", + "Name": "Romansh" + }, + { + "Id": 16, + "Iso6391": "rn", + "Iso6392": "run", + "Iso6392B": "run", + "Iso6392T": "run", + "Iso6393": "run", + "LocalName": "Kirundi", + "Name": "Kirundi" + }, + { + "Id": 17, + "Iso6391": "ro", + "Iso6392": "ron", + "Iso6392B": "rum", + "Iso6392T": "ron", + "Iso6393": "ron", + "LocalName": "Română", + "Name": "Romanian" + }, + { + "Id": 18, + "Iso6391": "ru", + "Iso6392": "rus", + "Iso6392B": "rus", + "Iso6392T": "rus", + "Iso6393": "rus", + "LocalName": "Русский", + "Name": "Russian" + }, + { + "Id": 19, + "Iso6391": "sa", + "Iso6392": "san", + "Iso6392B": "san", + "Iso6392T": "san", + "Iso6393": "san", + "LocalName": "संस्कृतम्", + "Name": "Sanskrit" + }, + { + "Id": 20, + "Iso6391": "sc", + "Iso6392": "srd", + "Iso6392B": "srd", + "Iso6392T": "srd", + "Iso6393": "srd", + "LocalName": "Sardu", + "Name": "Sardinian" + }, + { + "Id": 21, + "Iso6391": "nr", + "Iso6392": "nbl", + "Iso6392B": "nbl", + "Iso6392T": "nbl", + "Iso6393": "nbl", + "LocalName": "isiNdebele", + "Name": "Southern Ndebele" + }, + { + "Id": 22, + "Iso6391": "sd", + "Iso6392": "snd", + "Iso6392B": "snd", + "Iso6392T": "snd", + "Iso6393": "snd", + "LocalName": "سنڌي‎", + "Name": "Sindhi" + }, + { + "Id": 23, + "Iso6391": "ii", + "Iso6392": "iii", + "Iso6392B": "iii", + "Iso6392T": "iii", + "Iso6393": "iii", + "LocalName": "ꆈꌠ꒿ Nuosuhxop", + "Name": "Nuosu" + }, + { + "Id": 24, + "Iso6391": "nn", + "Iso6392": "nno", + "Iso6392B": "nno", + "Iso6392T": "nno", + "Iso6393": "nno", + "LocalName": "Norsk (Nynorsk)", + "Name": "Norwegian Nynorsk" + }, + { + "Id": 25, + "Iso6391": "lt", + "Iso6392": "lit", + "Iso6392B": "lit", + "Iso6392T": "lit", + "Iso6393": "lit", + "LocalName": "Lietuvių", + "Name": "Lithuanian" + }, + { + "Id": 26, + "Iso6391": "lu", + "Iso6392": "lub", + "Iso6392B": "lub", + "Iso6392T": "lub", + "Iso6393": "lub", + "LocalName": "Tshiluba", + "Name": "Luba-Katanga" + }, + { + "Id": 27, + "Iso6391": "lv", + "Iso6392": "lav", + "Iso6392B": "lav", + "Iso6392T": "lav", + "Iso6393": "lav", + "LocalName": "Latviešu", + "Name": "Latvian" + }, + { + "Id": 28, + "Iso6391": "gv", + "Iso6392": "glv", + "Iso6392B": "glv", + "Iso6392T": "glv", + "Iso6393": "glv", + "LocalName": "Gaelg", + "Name": "Manx" + }, + { + "Id": 29, + "Iso6391": "mk", + "Iso6392": "mkd", + "Iso6392B": "mac", + "Iso6392T": "mkd", + "Iso6393": "mkd", + "LocalName": "Македонски", + "Name": "Macedonian" + }, + { + "Id": 30, + "Iso6391": "mg", + "Iso6392": "mlg", + "Iso6392B": "mlg", + "Iso6392T": "mlg", + "Iso6393": "mlg", + "LocalName": "Malagasy", + "Name": "Malagasy" + }, + { + "Id": 31, + "Iso6391": "ms", + "Iso6392": "msa", + "Iso6392B": "may", + "Iso6392T": "msa", + "Iso6393": "msa", + "LocalName": "Bahasa Melayu", + "Name": "Malay" + }, + { + "Id": 32, + "Iso6391": "ml", + "Iso6392": "mal", + "Iso6392B": "mal", + "Iso6392T": "mal", + "Iso6393": "mal", + "LocalName": "മലയാളം", + "Name": "Malayalam" + }, + { + "Id": 33, + "Iso6391": "mt", + "Iso6392": "mlt", + "Iso6392B": "mlt", + "Iso6392T": "mlt", + "Iso6393": "mlt", + "LocalName": "Malti", + "Name": "Maltese" + }, + { + "Id": 34, + "Iso6391": "mi", + "Iso6392": "mri", + "Iso6392B": "mao", + "Iso6392T": "mri", + "Iso6393": "mri", + "LocalName": "Māori", + "Name": "Māori" + }, + { + "Id": 35, + "Iso6391": "mr", + "Iso6392": "mar", + "Iso6392B": "mar", + "Iso6392T": "mar", + "Iso6393": "mar", + "LocalName": "मराठी", + "Name": "Marathi" + }, + { + "Id": 36, + "Iso6391": "mh", + "Iso6392": "mah", + "Iso6392B": "mah", + "Iso6392T": "mah", + "Iso6393": "mah", + "LocalName": "Kajin M̧ajeļ", + "Name": "Marshallese" + }, + { + "Id": 37, + "Iso6391": "mn", + "Iso6392": "mon", + "Iso6392B": "mon", + "Iso6392T": "mon", + "Iso6393": "mon", + "LocalName": "Монгол", + "Name": "Mongolian" + }, + { + "Id": 38, + "Iso6391": "na", + "Iso6392": "nau", + "Iso6392B": "nau", + "Iso6392T": "nau", + "Iso6393": "nau", + "LocalName": "Dorerin Naoero", + "Name": "Nauru" + }, + { + "Id": 39, + "Iso6391": "nv", + "Iso6392": "nav", + "Iso6392B": "nav", + "Iso6392T": "nav", + "Iso6393": "nav", + "LocalName": "Diné Bizaad", + "Name": "Navajo" + }, + { + "Id": 40, + "Iso6391": "nd", + "Iso6392": "nde", + "Iso6392B": "nde", + "Iso6392T": "nde", + "Iso6393": "nde", + "LocalName": "isiNdebele", + "Name": "Northern Ndebele" + }, + { + "Id": 41, + "Iso6391": "ne", + "Iso6392": "nep", + "Iso6392B": "nep", + "Iso6392T": "nep", + "Iso6393": "nep", + "LocalName": "नेपाली", + "Name": "Nepali" + }, + { + "Id": 42, + "Iso6391": "ng", + "Iso6392": "ndo", + "Iso6392B": "ndo", + "Iso6392T": "ndo", + "Iso6393": "ndo", + "LocalName": "Owambo", + "Name": "Ndonga" + }, + { + "Id": 43, + "Iso6391": "nb", + "Iso6392": "nob", + "Iso6392B": "nob", + "Iso6392T": "nob", + "Iso6393": "nob", + "LocalName": "Norsk (Bokmål)", + "Name": "Norwegian Bokmål" + }, + { + "Id": 44, + "Iso6391": "no", + "Iso6392": "nor", + "Iso6392B": "nor", + "Iso6392T": "nor", + "Iso6393": "nor", + "LocalName": "Norsk", + "Name": "Norwegian" + }, + { + "Id": 45, + "Iso6391": "lo", + "Iso6392": "lao", + "Iso6392B": "lao", + "Iso6392T": "lao", + "Iso6393": "lao", + "LocalName": "ພາສາລາວ", + "Name": "Lao" + }, + { + "Id": 46, + "Iso6391": "se", + "Iso6392": "sme", + "Iso6392B": "sme", + "Iso6392T": "sme", + "Iso6393": "sme", + "LocalName": "Sámegiella", + "Name": "Northern Sami" + }, + { + "Id": 47, + "Iso6391": "sg", + "Iso6392": "sag", + "Iso6392B": "sag", + "Iso6392T": "sag", + "Iso6393": "sag", + "LocalName": "Sängö", + "Name": "Sango" + }, + { + "Id": 48, + "Iso6391": "tr", + "Iso6392": "tur", + "Iso6392B": "tur", + "Iso6392T": "tur", + "Iso6393": "tur", + "LocalName": "Türkçe", + "Name": "Turkish" + }, + { + "Id": 49, + "Iso6391": "ts", + "Iso6392": "tso", + "Iso6392B": "tso", + "Iso6392T": "tso", + "Iso6393": "tso", + "LocalName": "Xitsonga", + "Name": "Tsonga" + }, + { + "Id": 50, + "Iso6391": "tt", + "Iso6392": "tat", + "Iso6392B": "tat", + "Iso6392T": "tat", + "Iso6393": "tat", + "LocalName": "Татарча", + "Name": "Tatar" + }, + { + "Id": 51, + "Iso6391": "tw", + "Iso6392": "twi", + "Iso6392B": "twi", + "Iso6392T": "twi", + "Iso6393": "twi", + "LocalName": "Twi", + "Name": "Twi" + }, + { + "Id": 52, + "Iso6391": "ty", + "Iso6392": "tah", + "Iso6392B": "tah", + "Iso6392T": "tah", + "Iso6393": "tah", + "LocalName": "Reo Mā’ohi", + "Name": "Tahitian" + }, + { + "Id": 53, + "Iso6391": "ug", + "Iso6392": "uig", + "Iso6392B": "uig", + "Iso6392T": "uig", + "Iso6393": "uig", + "LocalName": "ئۇيغۇرچه", + "Name": "Uyghur" + }, + { + "Id": 54, + "Iso6391": "uk", + "Iso6392": "ukr", + "Iso6392B": "ukr", + "Iso6392T": "ukr", + "Iso6393": "ukr", + "LocalName": "Українська", + "Name": "Ukrainian" + }, + { + "Id": 55, + "Iso6391": "ur", + "Iso6392": "urd", + "Iso6392B": "urd", + "Iso6392T": "urd", + "Iso6393": "urd", + "LocalName": "اردو", + "Name": "Urdu" + }, + { + "Id": 56, + "Iso6391": "uz", + "Iso6392": "uzb", + "Iso6392B": "uzb", + "Iso6392T": "uzb", + "Iso6393": "uzb", + "LocalName": "O‘zbek", + "Name": "Uzbek" + }, + { + "Id": 57, + "Iso6391": "ve", + "Iso6392": "ven", + "Iso6392B": "ven", + "Iso6392T": "ven", + "Iso6393": "ven", + "LocalName": "Tshivenḓa", + "Name": "Venda" + }, + { + "Id": 58, + "Iso6391": "vi", + "Iso6392": "vie", + "Iso6392B": "vie", + "Iso6392T": "vie", + "Iso6393": "vie", + "LocalName": "Tiếng Việt", + "Name": "Vietnamese" + }, + { + "Id": 59, + "Iso6391": "vo", + "Iso6392": "vol", + "Iso6392B": "vol", + "Iso6392T": "vol", + "Iso6393": "vol", + "LocalName": "Volapük", + "Name": "Volapük" + }, + { + "Id": 60, + "Iso6391": "wa", + "Iso6392": "wln", + "Iso6392B": "wln", + "Iso6392T": "wln", + "Iso6393": "wln", + "LocalName": "Walon", + "Name": "Walloon" + }, + { + "Id": 61, + "Iso6391": "cy", + "Iso6392": "cym", + "Iso6392B": "wel", + "Iso6392T": "cym", + "Iso6393": "cym", + "LocalName": "Cymraeg", + "Name": "Welsh" + }, + { + "Id": 62, + "Iso6391": "wo", + "Iso6392": "wol", + "Iso6392B": "wol", + "Iso6392T": "wol", + "Iso6393": "wol", + "LocalName": "Wolof", + "Name": "Wolof" + }, + { + "Id": 63, + "Iso6391": "fy", + "Iso6392": "fry", + "Iso6392B": "fry", + "Iso6392T": "fry", + "Iso6393": "fry", + "LocalName": "Frysk", + "Name": "Western Frisian" + }, + { + "Id": 64, + "Iso6391": "xh", + "Iso6392": "xho", + "Iso6392B": "xho", + "Iso6392T": "xho", + "Iso6393": "xho", + "LocalName": "isiXhosa", + "Name": "Xhosa" + }, + { + "Id": 65, + "Iso6391": "yi", + "Iso6392": "yid", + "Iso6392B": "yid", + "Iso6392T": "yid", + "Iso6393": "yid", + "LocalName": "ייִדיש", + "Name": "Yiddish" + }, + { + "Id": 66, + "Iso6391": "yo", + "Iso6392": "yor", + "Iso6392B": "yor", + "Iso6392T": "yor", + "Iso6393": "yor", + "LocalName": "Yorùbá", + "Name": "Yoruba" + }, + { + "Id": 67, + "Iso6391": "to", + "Iso6392": "ton", + "Iso6392B": "ton", + "Iso6392T": "ton", + "Iso6393": "ton", + "LocalName": "faka Tonga", + "Name": "Tonga" + }, + { + "Id": 68, + "Iso6391": "sm", + "Iso6392": "smo", + "Iso6392B": "smo", + "Iso6392T": "smo", + "Iso6393": "smo", + "LocalName": "Gagana Sāmoa", + "Name": "Samoan" + }, + { + "Id": 69, + "Iso6391": "tn", + "Iso6392": "tsn", + "Iso6392B": "tsn", + "Iso6392T": "tsn", + "Iso6393": "tsn", + "LocalName": "Setswana", + "Name": "Tswana" + }, + { + "Id": 70, + "Iso6391": "tk", + "Iso6392": "tuk", + "Iso6392B": "tuk", + "Iso6392T": "tuk", + "Iso6393": "tuk", + "LocalName": "Türkmençe", + "Name": "Turkmen" + }, + { + "Id": 71, + "Iso6391": "sr", + "Iso6392": "srp", + "Iso6392B": "srp", + "Iso6392T": "srp", + "Iso6393": "srp", + "LocalName": "Српски", + "Name": "Serbian" + }, + { + "Id": 72, + "Iso6391": "gd", + "Iso6392": "gla", + "Iso6392B": "gla", + "Iso6392T": "gla", + "Iso6393": "gla", + "LocalName": "Gàidhlig", + "Name": "Gaelic" + }, + { + "Id": 73, + "Iso6391": "sn", + "Iso6392": "sna", + "Iso6392B": "sna", + "Iso6392T": "sna", + "Iso6393": "sna", + "LocalName": "ChiShona", + "Name": "Shona" + }, + { + "Id": 74, + "Iso6391": "si", + "Iso6392": "sin", + "Iso6392B": "sin", + "Iso6392T": "sin", + "Iso6393": "sin", + "LocalName": "සිංහල", + "Name": "Sinhala" + }, + { + "Id": 75, + "Iso6391": "sk", + "Iso6392": "slk", + "Iso6392B": "slo", + "Iso6392T": "slk", + "Iso6393": "slk", + "LocalName": "Slovenčina", + "Name": "Slovak" + }, + { + "Id": 76, + "Iso6391": "sl", + "Iso6392": "slv", + "Iso6392B": "slv", + "Iso6392T": "slv", + "Iso6393": "slv", + "LocalName": "Slovenščina", + "Name": "Slovene" + }, + { + "Id": 77, + "Iso6391": "so", + "Iso6392": "som", + "Iso6392B": "som", + "Iso6392T": "som", + "Iso6393": "som", + "LocalName": "Soomaaliga", + "Name": "Somali" + }, + { + "Id": 78, + "Iso6391": "st", + "Iso6392": "sot", + "Iso6392B": "sot", + "Iso6392T": "sot", + "Iso6393": "sot", + "LocalName": "Sesotho", + "Name": "Southern Sotho" + }, + { + "Id": 79, + "Iso6391": "es", + "Iso6392": "spa", + "Iso6392B": "spa", + "Iso6392T": "spa", + "Iso6393": "spa", + "LocalName": "Español", + "Name": "Spanish" + }, + { + "Id": 80, + "Iso6391": "su", + "Iso6392": "sun", + "Iso6392B": "sun", + "Iso6392T": "sun", + "Iso6393": "sun", + "LocalName": "Basa Sunda", + "Name": "Sundanese" + }, + { + "Id": 81, + "Iso6391": "sw", + "Iso6392": "swa", + "Iso6392B": "swa", + "Iso6392T": "swa", + "Iso6393": "swa", + "LocalName": "Kiswahili", + "Name": "Swahili" + }, + { + "Id": 82, + "Iso6391": "ss", + "Iso6392": "ssw", + "Iso6392B": "ssw", + "Iso6392T": "ssw", + "Iso6393": "ssw", + "LocalName": "SiSwati", + "Name": "Swati" + }, + { + "Id": 83, + "Iso6391": "sv", + "Iso6392": "swe", + "Iso6392B": "swe", + "Iso6392T": "swe", + "Iso6393": "swe", + "LocalName": "Svenska", + "Name": "Swedish" + }, + { + "Id": 84, + "Iso6391": "ta", + "Iso6392": "tam", + "Iso6392B": "tam", + "Iso6392T": "tam", + "Iso6393": "tam", + "LocalName": "தமிழ்", + "Name": "Tamil" + }, + { + "Id": 85, + "Iso6391": "te", + "Iso6392": "tel", + "Iso6392B": "tel", + "Iso6392T": "tel", + "Iso6393": "tel", + "LocalName": "తెలుగు", + "Name": "Telugu" + }, + { + "Id": 86, + "Iso6391": "tg", + "Iso6392": "tgk", + "Iso6392B": "tgk", + "Iso6392T": "tgk", + "Iso6393": "tgk", + "LocalName": "Тоҷикӣ", + "Name": "Tajik" + }, + { + "Id": 87, + "Iso6391": "th", + "Iso6392": "tha", + "Iso6392B": "tha", + "Iso6392T": "tha", + "Iso6393": "tha", + "LocalName": "ภาษาไทย", + "Name": "Thai" + }, + { + "Id": 88, + "Iso6391": "ti", + "Iso6392": "tir", + "Iso6392B": "tir", + "Iso6392T": "tir", + "Iso6393": "tir", + "LocalName": "ትግርኛ", + "Name": "Tigrinya" + }, + { + "Id": 89, + "Iso6391": "bo", + "Iso6392": "bod", + "Iso6392B": "tib", + "Iso6392T": "bod", + "Iso6393": "bod", + "LocalName": "བོད་ཡིག", + "Name": "Tibetan Standard" + }, + { + "Id": 90, + "Iso6391": "tl", + "Iso6392": "tgl", + "Iso6392B": "tgl", + "Iso6392T": "tgl", + "Iso6393": "tgl", + "LocalName": "Tagalog", + "Name": "Tagalog" + }, + { + "Id": 91, + "Iso6391": "ln", + "Iso6392": "lin", + "Iso6392B": "lin", + "Iso6392T": "lin", + "Iso6393": "lin", + "LocalName": "Lingála", + "Name": "Lingala" + }, + { + "Id": 92, + "Iso6391": "li", + "Iso6392": "lim", + "Iso6392B": "lim", + "Iso6392T": "lim", + "Iso6393": "lim", + "LocalName": "Limburgs", + "Name": "Limburgish" + }, + { + "Id": 93, + "Iso6391": "lg", + "Iso6392": "lug", + "Iso6392B": "lug", + "Iso6392T": "lug", + "Iso6393": "lug", + "LocalName": "Luganda", + "Name": "Ganda" + }, + { + "Id": 94, + "Iso6391": "my", + "Iso6392": "mya", + "Iso6392B": "bur", + "Iso6392T": "mya", + "Iso6393": "mya", + "LocalName": "မြန်မာဘာသာ", + "Name": "Burmese" + }, + { + "Id": 95, + "Iso6391": "ca", + "Iso6392": "cat", + "Iso6392B": "cat", + "Iso6392T": "cat", + "Iso6393": "cat", + "LocalName": "Català", + "Name": "Catalan" + }, + { + "Id": 96, + "Iso6391": "ch", + "Iso6392": "cha", + "Iso6392B": "cha", + "Iso6392T": "cha", + "Iso6393": "cha", + "LocalName": "Chamoru", + "Name": "Chamorro" + }, + { + "Id": 97, + "Iso6391": "ce", + "Iso6392": "che", + "Iso6392B": "che", + "Iso6392T": "che", + "Iso6393": "che", + "LocalName": "Нохчийн", + "Name": "Chechen" + }, + { + "Id": 98, + "Iso6391": "ny", + "Iso6392": "nya", + "Iso6392B": "nya", + "Iso6392T": "nya", + "Iso6393": "nya", + "LocalName": "Chichewa", + "Name": "Chichewa" + }, + { + "Id": 99, + "Iso6391": "zh", + "Iso6392": "zho", + "Iso6392B": "chi", + "Iso6392T": "zho", + "Iso6393": "zho", + "LocalName": "中文", + "Name": "Chinese" + }, + { + "Id": 100, + "Iso6391": "cv", + "Iso6392": "chv", + "Iso6392B": "chv", + "Iso6392T": "chv", + "Iso6393": "chv", + "LocalName": "Чӑвашла", + "Name": "Chuvash" + }, + { + "Id": 101, + "Iso6391": "kw", + "Iso6392": "cor", + "Iso6392B": "cor", + "Iso6392T": "cor", + "Iso6393": "cor", + "LocalName": "Kernewek", + "Name": "Cornish" + }, + { + "Id": 102, + "Iso6391": "co", + "Iso6392": "cos", + "Iso6392B": "cos", + "Iso6392T": "cos", + "Iso6393": "cos", + "LocalName": "Corsu", + "Name": "Corsican" + }, + { + "Id": 103, + "Iso6391": "cr", + "Iso6392": "cre", + "Iso6392B": "cre", + "Iso6392T": "cre", + "Iso6393": "cre", + "LocalName": "ᓀᐦᐃᔭᐍᐏᐣ", + "Name": "Cree" + }, + { + "Id": 104, + "Iso6391": "hr", + "Iso6392": "hrv", + "Iso6392B": "hrv", + "Iso6392T": "hrv", + "Iso6393": "hrv", + "LocalName": "Hrvatski", + "Name": "Croatian" + }, + { + "Id": 105, + "Iso6391": "cs", + "Iso6392": "ces", + "Iso6392B": "cze", + "Iso6392T": "ces", + "Iso6393": "ces", + "LocalName": "Čeština", + "Name": "Czech" + }, + { + "Id": 106, + "Iso6391": "da", + "Iso6392": "dan", + "Iso6392B": "dan", + "Iso6392T": "dan", + "Iso6393": "dan", + "LocalName": "Dansk", + "Name": "Danish" + }, + { + "Id": 107, + "Iso6391": "dv", + "Iso6392": "div", + "Iso6392B": "div", + "Iso6392T": "div", + "Iso6393": "div", + "LocalName": "Divehi", + "Name": "Divehi" + }, + { + "Id": 108, + "Iso6391": "nl", + "Iso6392": "nld", + "Iso6392B": "dut", + "Iso6392T": "nld", + "Iso6393": "nld", + "LocalName": "Nederlands", + "Name": "Dutch" + }, + { + "Id": 109, + "Iso6391": "dz", + "Iso6392": "dzo", + "Iso6392B": "dzo", + "Iso6392T": "dzo", + "Iso6393": "dzo", + "LocalName": "རྫོང་ཁ", + "Name": "Dzongkha" + }, + { + "Id": 110, + "Iso6391": "en", + "Iso6392": "eng", + "Iso6392B": "eng", + "Iso6392T": "eng", + "Iso6393": "eng", + "LocalName": "English", + "Name": "English" + }, + { + "Id": 111, + "Iso6391": "eo", + "Iso6392": "epo", + "Iso6392B": "epo", + "Iso6392T": "epo", + "Iso6393": "epo", + "LocalName": "Esperanto", + "Name": "Esperanto" + }, + { + "Id": 112, + "Iso6391": "et", + "Iso6392": "est", + "Iso6392B": "est", + "Iso6392T": "est", + "Iso6393": "est", + "LocalName": "Eesti", + "Name": "Estonian" + }, + { + "Id": 113, + "Iso6391": "bg", + "Iso6392": "bul", + "Iso6392B": "bul", + "Iso6392T": "bul", + "Iso6393": "bul", + "LocalName": "Български", + "Name": "Bulgarian" + }, + { + "Id": 114, + "Iso6391": "ee", + "Iso6392": "ewe", + "Iso6392B": "ewe", + "Iso6392T": "ewe", + "Iso6393": "ewe", + "LocalName": "Eʋegbe", + "Name": "Ewe" + }, + { + "Id": 115, + "Iso6391": "br", + "Iso6392": "bre", + "Iso6392B": "bre", + "Iso6392T": "bre", + "Iso6393": "bre", + "LocalName": "Brezhoneg", + "Name": "Breton" + }, + { + "Id": 116, + "Iso6391": "bi", + "Iso6392": "bis", + "Iso6392B": "bis", + "Iso6392T": "bis", + "Iso6393": "bis", + "LocalName": "Bislama", + "Name": "Bislama" + }, + { + "Id": 117, + "Iso6391": "aa", + "Iso6392": "aar", + "Iso6392B": "aar", + "Iso6392T": "aar", + "Iso6393": "aar", + "LocalName": "Afaraf", + "Name": "Afar" + }, + { + "Id": 118, + "Iso6391": "af", + "Iso6392": "afr", + "Iso6392B": "afr", + "Iso6392T": "afr", + "Iso6393": "afr", + "LocalName": "Afrikaans", + "Name": "Afrikaans" + }, + { + "Id": 119, + "Iso6391": "ak", + "Iso6392": "aka", + "Iso6392B": "aka", + "Iso6392T": "aka", + "Iso6393": "aka", + "LocalName": "Akan", + "Name": "Akan" + }, + { + "Id": 120, + "Iso6391": "sq", + "Iso6392": "sqi", + "Iso6392B": "alb", + "Iso6392T": "sqi", + "Iso6393": "sqi", + "LocalName": "Shqip", + "Name": "Albanian" + }, + { + "Id": 121, + "Iso6391": "am", + "Iso6392": "amh", + "Iso6392B": "amh", + "Iso6392T": "amh", + "Iso6393": "amh", + "LocalName": "አማርኛ", + "Name": "Amharic" + }, + { + "Id": 122, + "Iso6391": "ar", + "Iso6392": "ara", + "Iso6392B": "ara", + "Iso6392T": "ara", + "Iso6393": "ara", + "LocalName": "العربية", + "Name": "Arabic" + }, + { + "Id": 123, + "Iso6391": "an", + "Iso6392": "arg", + "Iso6392B": "arg", + "Iso6392T": "arg", + "Iso6393": "arg", + "LocalName": "Aragonés", + "Name": "Aragonese" + }, + { + "Id": 124, + "Iso6391": "hy", + "Iso6392": "hye", + "Iso6392B": "arm", + "Iso6392T": "hye", + "Iso6393": "hye", + "LocalName": "Հայերեն", + "Name": "Armenian" + }, + { + "Id": 125, + "Iso6391": "as", + "Iso6392": "asm", + "Iso6392B": "asm", + "Iso6392T": "asm", + "Iso6393": "asm", + "LocalName": "অসমীয়া", + "Name": "Assamese" + }, + { + "Id": 126, + "Iso6391": "av", + "Iso6392": "ava", + "Iso6392B": "ava", + "Iso6392T": "ava", + "Iso6393": "ava", + "LocalName": "Авар", + "Name": "Avaric" + }, + { + "Id": 127, + "Iso6391": "ae", + "Iso6392": "ave", + "Iso6392B": "ave", + "Iso6392T": "ave", + "Iso6393": "ave", + "LocalName": "avesta", + "Name": "Avestan" + }, + { + "Id": 128, + "Iso6391": "ay", + "Iso6392": "aym", + "Iso6392B": "aym", + "Iso6392T": "aym", + "Iso6393": "aym", + "LocalName": "Aymar", + "Name": "Aymara" + }, + { + "Id": 129, + "Iso6391": "az", + "Iso6392": "aze", + "Iso6392B": "aze", + "Iso6392T": "aze", + "Iso6393": "aze", + "LocalName": "Azərbaycanca", + "Name": "Azerbaijani" + }, + { + "Id": 130, + "Iso6391": "bm", + "Iso6392": "bam", + "Iso6392B": "bam", + "Iso6392T": "bam", + "Iso6393": "bam", + "LocalName": "Bamanankan", + "Name": "Bambara" + }, + { + "Id": 131, + "Iso6391": "ba", + "Iso6392": "bak", + "Iso6392B": "bak", + "Iso6392T": "bak", + "Iso6393": "bak", + "LocalName": "Башҡортса", + "Name": "Bashkir" + }, + { + "Id": 132, + "Iso6391": "eu", + "Iso6392": "eus", + "Iso6392B": "baq", + "Iso6392T": "eus", + "Iso6393": "eus", + "LocalName": "Euskara", + "Name": "Basque" + }, + { + "Id": 133, + "Iso6391": "be", + "Iso6392": "bel", + "Iso6392B": "bel", + "Iso6392T": "bel", + "Iso6393": "bel", + "LocalName": "Беларуская", + "Name": "Belarusian" + }, + { + "Id": 134, + "Iso6391": "bn", + "Iso6392": "ben", + "Iso6392B": "ben", + "Iso6392T": "ben", + "Iso6393": "ben", + "LocalName": "বাংলা", + "Name": "Bengali" + }, + { + "Id": 135, + "Iso6391": "bh", + "Iso6392": "bih", + "Iso6392B": "bih", + "Iso6392T": "bih", + "Iso6393": "bih", + "LocalName": "भोजपुरी", + "Name": "Bihari" + }, + { + "Id": 136, + "Iso6391": "bs", + "Iso6392": "bos", + "Iso6392B": "bos", + "Iso6392T": "bos", + "Iso6393": "bos", + "LocalName": "Bosanski", + "Name": "Bosnian" + }, + { + "Id": 137, + "Iso6391": "fo", + "Iso6392": "fao", + "Iso6392B": "fao", + "Iso6392T": "fao", + "Iso6393": "fao", + "LocalName": "Føroyskt", + "Name": "Faroese" + }, + { + "Id": 138, + "Iso6391": "fj", + "Iso6392": "fij", + "Iso6392B": "fij", + "Iso6392T": "fij", + "Iso6393": "fij", + "LocalName": "Na Vosa Vaka-Viti", + "Name": "Fijian" + }, + { + "Id": 139, + "Iso6391": "fi", + "Iso6392": "fin", + "Iso6392B": "fin", + "Iso6392T": "fin", + "Iso6393": "fin", + "LocalName": "Suomi", + "Name": "Finnish" + }, + { + "Id": 140, + "Iso6391": "iu", + "Iso6392": "iku", + "Iso6392B": "iku", + "Iso6392T": "iku", + "Iso6393": "iku", + "LocalName": "ᐃᓄᒃᑎᑐᑦ", + "Name": "Inuktitut" + }, + { + "Id": 141, + "Iso6391": "ja", + "Iso6392": "jpn", + "Iso6392B": "jpn", + "Iso6392T": "jpn", + "Iso6393": "jpn", + "LocalName": "日本語", + "Name": "Japanese" + }, + { + "Id": 142, + "Iso6391": "jv", + "Iso6392": "jav", + "Iso6392B": "jav", + "Iso6392T": "jav", + "Iso6393": "jav", + "LocalName": "Basa Jawa", + "Name": "Javanese" + }, + { + "Id": 143, + "Iso6391": "kl", + "Iso6392": "kal", + "Iso6392B": "kal", + "Iso6392T": "kal", + "Iso6393": "kal", + "LocalName": "Kalaallisut", + "Name": "Kalaallisut" + }, + { + "Id": 144, + "Iso6391": "kn", + "Iso6392": "kan", + "Iso6392B": "kan", + "Iso6392T": "kan", + "Iso6393": "kan", + "LocalName": "ಕನ್ನಡ", + "Name": "Kannada" + }, + { + "Id": 145, + "Iso6391": "kr", + "Iso6392": "kau", + "Iso6392B": "kau", + "Iso6392T": "kau", + "Iso6393": "kau", + "LocalName": "Kanuri", + "Name": "Kanuri" + }, + { + "Id": 146, + "Iso6391": "ks", + "Iso6392": "kas", + "Iso6392B": "kas", + "Iso6392T": "kas", + "Iso6393": "kas", + "LocalName": "كشميري", + "Name": "Kashmiri" + }, + { + "Id": 147, + "Iso6391": "kk", + "Iso6392": "kaz", + "Iso6392B": "kaz", + "Iso6392T": "kaz", + "Iso6393": "kaz", + "LocalName": "Қазақша", + "Name": "Kazakh" + }, + { + "Id": 148, + "Iso6391": "km", + "Iso6392": "khm", + "Iso6392B": "khm", + "Iso6392T": "khm", + "Iso6393": "khm", + "LocalName": "ភាសាខ្មែរ", + "Name": "Khmer" + }, + { + "Id": 149, + "Iso6391": "ki", + "Iso6392": "kik", + "Iso6392B": "kik", + "Iso6392T": "kik", + "Iso6393": "kik", + "LocalName": "Gĩkũyũ", + "Name": "Kikuyu" + }, + { + "Id": 150, + "Iso6391": "rw", + "Iso6392": "kin", + "Iso6392B": "kin", + "Iso6392T": "kin", + "Iso6393": "kin", + "LocalName": "Kinyarwanda", + "Name": "Kinyarwanda" + }, + { + "Id": 151, + "Iso6391": "ky", + "Iso6392": "kir", + "Iso6392B": "kir", + "Iso6392T": "kir", + "Iso6393": "kir", + "LocalName": "Кыргызча", + "Name": "Kyrgyz" + }, + { + "Id": 152, + "Iso6391": "kv", + "Iso6392": "kom", + "Iso6392B": "kom", + "Iso6392T": "kom", + "Iso6393": "kom", + "LocalName": "Коми", + "Name": "Komi" + }, + { + "Id": 153, + "Iso6391": "kg", + "Iso6392": "kon", + "Iso6392B": "kon", + "Iso6392T": "kon", + "Iso6393": "kon", + "LocalName": "Kongo", + "Name": "Kongo" + }, + { + "Id": 154, + "Iso6391": "ko", + "Iso6392": "kor", + "Iso6392B": "kor", + "Iso6392T": "kor", + "Iso6393": "kor", + "LocalName": "한국어", + "Name": "Korean" + }, + { + "Id": 155, + "Iso6391": "ku", + "Iso6392": "kur", + "Iso6392B": "kur", + "Iso6392T": "kur", + "Iso6393": "kur", + "LocalName": "Kurdî", + "Name": "Kurdish" + }, + { + "Id": 156, + "Iso6391": "kj", + "Iso6392": "kua", + "Iso6392B": "kua", + "Iso6392T": "kua", + "Iso6393": "kua", + "LocalName": "Kuanyama", + "Name": "Kwanyama" + }, + { + "Id": 157, + "Iso6391": "la", + "Iso6392": "lat", + "Iso6392B": "lat", + "Iso6392T": "lat", + "Iso6393": "lat", + "LocalName": "Latina", + "Name": "Latin" + }, + { + "Id": 158, + "Iso6391": "lb", + "Iso6392": "ltz", + "Iso6392B": "ltz", + "Iso6392T": "ltz", + "Iso6393": "ltz", + "LocalName": "Lëtzebuergesch", + "Name": "Luxembourgish" + }, + { + "Id": 159, + "Iso6391": "it", + "Iso6392": "ita", + "Iso6392B": "ita", + "Iso6392T": "ita", + "Iso6393": "ita", + "LocalName": "Italiano", + "Name": "Italian" + }, + { + "Id": 160, + "Iso6391": "is", + "Iso6392": "isl", + "Iso6392B": "ice", + "Iso6392T": "isl", + "Iso6393": "isl", + "LocalName": "Íslenska", + "Name": "Icelandic" + }, + { + "Id": 161, + "Iso6391": "io", + "Iso6392": "ido", + "Iso6392B": "ido", + "Iso6392T": "ido", + "Iso6393": "ido", + "LocalName": "Ido", + "Name": "Ido" + }, + { + "Id": 162, + "Iso6391": "ik", + "Iso6392": "ipk", + "Iso6392B": "ipk", + "Iso6392T": "ipk", + "Iso6393": "ipk", + "LocalName": "Iñupiak", + "Name": "Inupiaq" + }, + { + "Id": 163, + "Iso6391": "fr", + "Iso6392": "fra", + "Iso6392B": "fre", + "Iso6392T": "fra", + "Iso6393": "fra", + "LocalName": "Français", + "Name": "French" + }, + { + "Id": 164, + "Iso6391": "ff", + "Iso6392": "ful", + "Iso6392B": "ful", + "Iso6392T": "ful", + "Iso6393": "ful", + "LocalName": "Fulfulde", + "Name": "Fula" + }, + { + "Id": 165, + "Iso6391": "gl", + "Iso6392": "glg", + "Iso6392B": "glg", + "Iso6392T": "glg", + "Iso6393": "glg", + "LocalName": "Galego", + "Name": "Galician" + }, + { + "Id": 166, + "Iso6391": "ka", + "Iso6392": "kat", + "Iso6392B": "geo", + "Iso6392T": "kat", + "Iso6393": "kat", + "LocalName": "ქართული", + "Name": "Georgian" + }, + { + "Id": 167, + "Iso6391": "de", + "Iso6392": "deu", + "Iso6392B": "ger", + "Iso6392T": "deu", + "Iso6393": "deu", + "LocalName": "Deutsch", + "Name": "German" + }, + { + "Id": 168, + "Iso6391": "el", + "Iso6392": "ell", + "Iso6392B": "gre", + "Iso6392T": "ell", + "Iso6393": "ell", + "LocalName": "Ελληνικά", + "Name": "Greek" + }, + { + "Id": 169, + "Iso6391": "gn", + "Iso6392": "grn", + "Iso6392B": "grn", + "Iso6392T": "grn", + "Iso6393": "grn", + "LocalName": "Avañe'ẽ", + "Name": "Guaraní" + }, + { + "Id": 170, + "Iso6391": "gu", + "Iso6392": "guj", + "Iso6392B": "guj", + "Iso6392T": "guj", + "Iso6393": "guj", + "LocalName": "ગુજરાતી", + "Name": "Gujarati" + }, + { + "Id": 171, + "Iso6391": "ht", + "Iso6392": "hat", + "Iso6392B": "hat", + "Iso6392T": "hat", + "Iso6393": "hat", + "LocalName": "Kreyòl Ayisyen", + "Name": "Haitian" + }, + { + "Id": 172, + "Iso6391": "za", + "Iso6392": "zha", + "Iso6392B": "zha", + "Iso6392T": "zha", + "Iso6393": "zha", + "LocalName": "Cuengh", + "Name": "Zhuang" + }, + { + "Id": 173, + "Iso6391": "ha", + "Iso6392": "hau", + "Iso6392B": "hau", + "Iso6392T": "hau", + "Iso6393": "hau", + "LocalName": "هَوُسَ", + "Name": "Hausa" + }, + { + "Id": 174, + "Iso6391": "hz", + "Iso6392": "her", + "Iso6392B": "her", + "Iso6392T": "her", + "Iso6393": "her", + "LocalName": "Otjiherero", + "Name": "Herero" + }, + { + "Id": 175, + "Iso6391": "hi", + "Iso6392": "hin", + "Iso6392B": "hin", + "Iso6392T": "hin", + "Iso6393": "hin", + "LocalName": "हिन्दी", + "Name": "Hindi" + }, + { + "Id": 176, + "Iso6391": "ho", + "Iso6392": "hmo", + "Iso6392B": "hmo", + "Iso6392T": "hmo", + "Iso6393": "hmo", + "LocalName": "Hiri Motu", + "Name": "Hiri Motu" + }, + { + "Id": 177, + "Iso6391": "hu", + "Iso6392": "hun", + "Iso6392B": "hun", + "Iso6392T": "hun", + "Iso6393": "hun", + "LocalName": "Magyar", + "Name": "Hungarian" + }, + { + "Id": 178, + "Iso6391": "ia", + "Iso6392": "ina", + "Iso6392B": "ina", + "Iso6392T": "ina", + "Iso6393": "ina", + "LocalName": "Interlingua", + "Name": "Interlingua" + }, + { + "Id": 179, + "Iso6391": "id", + "Iso6392": "ind", + "Iso6392B": "ind", + "Iso6392T": "ind", + "Iso6393": "ind", + "LocalName": "Bahasa Indonesia", + "Name": "Indonesian" + }, + { + "Id": 180, + "Iso6391": "ie", + "Iso6392": "ile", + "Iso6392B": "ile", + "Iso6392T": "ile", + "Iso6393": "ile", + "LocalName": "Interlingue", + "Name": "Interlingue" + }, + { + "Id": 181, + "Iso6391": "ga", + "Iso6392": "gle", + "Iso6392B": "gle", + "Iso6392T": "gle", + "Iso6393": "gle", + "LocalName": "Gaeilge", + "Name": "Irish" + }, + { + "Id": 182, + "Iso6391": "ig", + "Iso6392": "ibo", + "Iso6392B": "ibo", + "Iso6392T": "ibo", + "Iso6393": "ibo", + "LocalName": "Igbo", + "Name": "Igbo" + }, + { + "Id": 183, + "Iso6391": "he", + "Iso6392": "heb", + "Iso6392B": "heb", + "Iso6392T": "heb", + "Iso6393": "heb", + "LocalName": "עברית", + "Name": "Hebrew" + }, + { + "Id": 184, + "Iso6391": "zu", + "Iso6392": "zul", + "Iso6392B": "zul", + "Iso6392T": "zul", + "Iso6393": "zul", + "LocalName": "isiZulu", + "Name": "Zulu" + } +] \ No newline at end of file diff --git a/src/FilterLists.Api/Seed/Maintainer.json b/src/FilterLists.Api/Seed/Maintainer.json new file mode 100644 index 000000000..660d25b6a --- /dev/null +++ b/src/FilterLists.Api/Seed/Maintainer.json @@ -0,0 +1,163 @@ +[ + { + "Id": 2, + "HomeUrl": null, + "Name": "AppliliZ", + "TwitterHandle": null, + "EmailAddress": null + }, + { + "Id": 3, + "HomeUrl": "https://bradconte.com/", + "Name": "Brad Conte", + "TwitterHandle": "bradconte", + "EmailAddress": null + }, + { + "Id": 4, + "HomeUrl": "https://forum.xda-developers.com/member.php?u=4877037", + "Name": "BSDgeek_Jake", + "TwitterHandle": null, + "EmailAddress": null + }, + { + "Id": 5, + "HomeUrl": "https://www.michaeltrimm.com/", + "Name": "Michael Trimm", + "TwitterHandle": null, + "EmailAddress": null + }, + { + "Id": 6, + "HomeUrl": "https://eyeo.com/", + "Name": "eyeo GmbH", + "TwitterHandle": "eyeo", + "EmailAddress": "info@eyeo.com" + }, + { + "Id": 7, + "HomeUrl": "https://easylist.to/", + "Name": "The EasyList Authors", + "TwitterHandle": null, + "EmailAddress": null + }, + { + "Id": 8, + "HomeUrl": "https://github.com/mayve", + "Name": "mayve", + "TwitterHandle": null, + "EmailAddress": null + }, + { + "Id": 9, + "HomeUrl": "http://joxeankoret.com/", + "Name": "Joxean Koret", + "TwitterHandle": null, + "EmailAddress": "admin@oxeankoret.com" + }, + { + "Id": 10, + "HomeUrl": "https://www.malwaredomainlist.com/", + "Name": "Malware Domain List Community", + "TwitterHandle": "_MDL_", + "EmailAddress": null + }, + { + "Id": 11, + "HomeUrl": "https://forums.lanik.us/memberlist.php?mode=viewprofile&u=542", + "Name": "Lian", + "TwitterHandle": null, + "EmailAddress": null + }, + { + "Id": 12, + "HomeUrl": "https://forums.lanik.us/memberlist.php?mode=viewprofile&u=2266", + "Name": "Crits", + "TwitterHandle": null, + "EmailAddress": null + }, + { + "Id": 13, + "HomeUrl": "https://forums.lanik.us/memberlist.php?mode=viewprofile&u=1260", + "Name": "smed79", + "TwitterHandle": null, + "EmailAddress": null + }, + { + "Id": 14, + "HomeUrl": "https://www.fanboy.co.nz/", + "Name": "fanboy", + "TwitterHandle": null, + "EmailAddress": null + }, + { + "Id": 15, + "HomeUrl": "https://forums.lanik.us/memberlist.php?mode=viewprofile&u=333", + "Name": "MonztA", + "TwitterHandle": null, + "EmailAddress": null + }, + { + "Id": 16, + "HomeUrl": "https://forums.lanik.us/memberlist.php?mode=viewprofile&u=1488", + "Name": "Famlam", + "TwitterHandle": null, + "EmailAddress": null + }, + { + "Id": 17, + "HomeUrl": "https://forums.lanik.us/memberlist.php?mode=viewprofile&u=1400", + "Name": "Khrin", + "TwitterHandle": null, + "EmailAddress": null + }, + { + "Id": 18, + "HomeUrl": "https://github.com/SlowMemory", + "Name": "SlowMemory", + "TwitterHandle": null, + "EmailAddress": null + }, + { + "Id": 19, + "HomeUrl": "https://www.blogger.com/profile/09662737599549871224", + "Name": "MVPS HOSTS Maintainer", + "TwitterHandle": null, + "EmailAddress": null + }, + { + "Id": 20, + "HomeUrl": "https://github.com/taylr", + "Name": "Matt Taylor", + "TwitterHandle": null, + "EmailAddress": null + }, + { + "Id": 21, + "HomeUrl": "https://github.com/hoshsadiq/adblock-nocoin-list", + "Name": "Hosh", + "TwitterHandle": null, + "EmailAddress": null + }, + { + "Id": 22, + "HomeUrl": "https://github.com/DandelionSprout", + "Name": "Imre Kristoffer Eilertsen", + "TwitterHandle": null, + "EmailAddress": null + }, + { + "Id": 23, + "HomeUrl": "https://abuse.ch/", + "Name": "abuse.ch", + "TwitterHandle": "abuse_ch", + "EmailAddress": "contactme@abuse.ch" + }, + { + "Id": 24, + "HomeUrl": "https://github.com/metaphoricgiraffe", + "Name": "metaphoricgiraffe", + "TwitterHandle": null, + "EmailAddress": null + } +] \ No newline at end of file diff --git a/src/FilterLists.Api/Seed/Merge.json b/src/FilterLists.Api/Seed/Merge.json new file mode 100644 index 000000000..ec61604ab --- /dev/null +++ b/src/FilterLists.Api/Seed/Merge.json @@ -0,0 +1,94 @@ +[ + { + "MergeFilterListId": 11, + "UpstreamFilterListId": 12 + }, + { + "MergeFilterListId": 13, + "UpstreamFilterListId": 12 + }, + { + "MergeFilterListId": 13, + "UpstreamFilterListId": 14 + }, + { + "MergeFilterListId": 21, + "UpstreamFilterListId": 23 + }, + { + "MergeFilterListId": 22, + "UpstreamFilterListId": 24 + }, + { + "MergeFilterListId": 120, + "UpstreamFilterListId": 25 + }, + { + "MergeFilterListId": 22, + "UpstreamFilterListId": 26 + }, + { + "MergeFilterListId": 22, + "UpstreamFilterListId": 37 + }, + { + "MergeFilterListId": 21, + "UpstreamFilterListId": 75 + }, + { + "MergeFilterListId": 120, + "UpstreamFilterListId": 76 + }, + { + "MergeFilterListId": 22, + "UpstreamFilterListId": 77 + }, + { + "MergeFilterListId": 21, + "UpstreamFilterListId": 121 + }, + { + "MergeFilterListId": 22, + "UpstreamFilterListId": 122 + }, + { + "MergeFilterListId": 21, + "UpstreamFilterListId": 123 + }, + { + "MergeFilterListId": 22, + "UpstreamFilterListId": 124 + }, + { + "MergeFilterListId": 21, + "UpstreamFilterListId": 125 + }, + { + "MergeFilterListId": 22, + "UpstreamFilterListId": 126 + }, + { + "MergeFilterListId": 120, + "UpstreamFilterListId": 127 + }, + { + "MergeFilterListId": 120, + "UpstreamFilterListId": 128 + }, + { + "MergeFilterListId": 22, + "UpstreamFilterListId": 129 + }, + { + "MergeFilterListId": 21, + "UpstreamFilterListId": 130 + }, + { + "MergeFilterListId": 11, + "UpstreamFilterListId": 301 + }, + { + "MergeFilterListId": 13, + "UpstreamFilterListId": 301 + } +] \ No newline at end of file diff --git a/src/FilterLists.Api/Seed/Software.json b/src/FilterLists.Api/Seed/Software.json new file mode 100644 index 000000000..6cb8d84fa --- /dev/null +++ b/src/FilterLists.Api/Seed/Software.json @@ -0,0 +1,20 @@ +[ + { + "Id": 1, + "DownloadUrl": "https://github.com/gorhill/uBlock#installation", + "HomeUrl": "https://github.com/gorhill/uBlock", + "Name": "uBlock Origin" + }, + { + "Id": 2, + "DownloadUrl": "https://adblockplus.org/", + "HomeUrl": "https://adblockplus.org/", + "Name": "Adblock Plus" + }, + { + "Id": 3, + "DownloadUrl": "https://adguard.com/en/download.html", + "HomeUrl": "https://adguard.com/", + "Name": "AdGuard" + } +] \ No newline at end of file diff --git a/src/FilterLists.Api/Seed/SoftwareSyntax.json b/src/FilterLists.Api/Seed/SoftwareSyntax.json new file mode 100644 index 000000000..ba2d8da5c --- /dev/null +++ b/src/FilterLists.Api/Seed/SoftwareSyntax.json @@ -0,0 +1,14 @@ +[ + { + "SoftwareId": 2, + "SyntaxId": 3 + }, + { + "SoftwareId": 1, + "SyntaxId": 4 + }, + { + "SoftwareId": 3, + "SyntaxId": 6 + } +] \ No newline at end of file diff --git a/src/FilterLists.Data/FilterListsDbContext.cs b/src/FilterLists.Data/FilterListsDbContext.cs index 8405de550..32dcd61c7 100644 --- a/src/FilterLists.Data/FilterListsDbContext.cs +++ b/src/FilterLists.Data/FilterListsDbContext.cs @@ -11,15 +11,14 @@ public FilterListsDbContext(DbContextOptions options) { } - public DbSet FilterLists { get; set; } - public DbSet Languages { get; set; } - public DbSet Licenses { get; set; } - public DbSet Maintainers { get; set; } - public DbSet Rules { get; set; } - public DbSet Software { get; set; } - public DbSet Syntaxes { get; set; } - protected override void OnModelCreating(ModelBuilder modelBuilder) + { + ApplyConfigurationsEntities(modelBuilder); + ApplyConfigurationsJunctions(modelBuilder); + base.OnModelCreating(modelBuilder); + } + + private static void ApplyConfigurationsEntities(ModelBuilder modelBuilder) { modelBuilder.ApplyConfiguration(new FilterListTypeConfiguration()); modelBuilder.ApplyConfiguration(new LanguageTypeConfiguration()); @@ -28,15 +27,39 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.ApplyConfiguration(new RuleTypeConfiguration()); modelBuilder.ApplyConfiguration(new SoftwareTypeConfiguration()); modelBuilder.ApplyConfiguration(new SyntaxTypeConfiguration()); + } + private static void ApplyConfigurationsJunctions(ModelBuilder modelBuilder) + { modelBuilder.ApplyConfiguration(new FilterListLanguageTypeConfiguration()); modelBuilder.ApplyConfiguration(new FilterListMaintainerTypeConfiguration()); modelBuilder.ApplyConfiguration(new FilterListRuleTypeConfiguration()); modelBuilder.ApplyConfiguration(new ForkTypeConfiguration()); modelBuilder.ApplyConfiguration(new MergeTypeConfiguration()); modelBuilder.ApplyConfiguration(new SoftwareSyntaxTypeConfiguration()); - - base.OnModelCreating(modelBuilder); } + + #region Entities + + public DbSet FilterLists { get; set; } + public DbSet Languages { get; set; } + public DbSet Licenses { get; set; } + public DbSet Maintainers { get; set; } + public DbSet Rules { get; set; } + public DbSet Software { get; set; } + public DbSet Syntaxes { get; set; } + + #endregion + + #region Junctions + + public DbSet FilterListLanguages { get; set; } + public DbSet FilterListMaintainers { get; set; } + public DbSet FilterListRules { get; set; } + public DbSet Forks { get; set; } + public DbSet Merges { get; set; } + public DbSet SoftwareSyntaxes { get; set; } + + #endregion } } \ No newline at end of file