diff --git a/src/World.Net.UnitTests/Countries/QatarTest.cs b/src/World.Net.UnitTests/Countries/QatarTest.cs new file mode 100644 index 0000000..a46fb0b --- /dev/null +++ b/src/World.Net.UnitTests/Countries/QatarTest.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace World.Net.UnitTests.Countries +{ + public sealed class QatarTest : AssertCountryTestBase + { + private const string QATAR_COUNTRY_NAME = "Qatar"; + private const string QATAR_NATIVE_NAME = "دولة قطر"; + private const string QATAR_CAPITAL = "Doha"; + private const string QATAR_OFFICIAL_NAME = "State of Qatar"; + private const string QATAR_ISO2_CODE = "QA"; + private const string QATAR_ISO3_CODE = "QAT"; + private const int QATAR_NUMERIC_CODE = 634; + private readonly string[] QATAR_CALLING_CODE = ["+974"]; + private const CountryIdentifier EXPECTEDID = CountryIdentifier.Qatar; + + private static readonly (string Name, string IsoCode, string Type)[] EXPECTED_STATES = + [ + new("Ad Dawhah", "QA-DA", "Municipality"), + new("Al Khor", "QA-KH", "Municipality"), + new("Al Rayyan", "QA-RA", "Municipality"), + new("Al Shamal", "QA-SH", "Municipality"), + new("Al Wakrah", "QA-WA", "Municipality"), + new("Al Shahaniya", "QA-SN", "Municipality"), + new("Umm Salal", "QA-US", "Municipality"), + new("Al Daayen", "QA-DAA", "Municipality") + ]; + + [Fact] + public void GetCountry_ReturnsCorrectInformation_ForQatar() + { + // Arrange + // Act + var country = CountryProvider.GetCountry(EXPECTEDID); + + // Assert + AssertCorrectInformation( + country, + EXPECTEDID, + QATAR_COUNTRY_NAME, + QATAR_OFFICIAL_NAME, + QATAR_NATIVE_NAME, + QATAR_CAPITAL, + QATAR_NUMERIC_CODE, + QATAR_ISO2_CODE, + QATAR_ISO3_CODE, + QATAR_CALLING_CODE, + EXPECTED_STATES + ); + } + } + +} diff --git a/src/World.Net.UnitTests/Countries/ReunionTest.cs b/src/World.Net.UnitTests/Countries/ReunionTest.cs new file mode 100644 index 0000000..3ecd78d --- /dev/null +++ b/src/World.Net.UnitTests/Countries/ReunionTest.cs @@ -0,0 +1,42 @@ +namespace World.Net.UnitTests.Countries; + +public sealed class ReunionTest : AssertCountryTestBase +{ + private const string REUNION_COUNTRY_NAME = "Réunion"; + private const string REUNION_NATIVE_NAME = "Réunion"; + private const string REUNION_CAPITAL = "Saint-Denis"; + private const string REUNION_OFFICIAL_NAME = "Réunion"; + private const string REUNION_ISO2_CODE = "RE"; + private const string REUNION_ISO3_CODE = "REU"; + private const int REUNION_NUMERIC_CODE = 638; + private readonly string[] REUNION_CALLING_CODE = ["+262"]; + private const CountryIdentifier EXPECTEDID = CountryIdentifier.Reunion; + + private static readonly (string Name, string IsoCode, string Type)[] EXPECTED_STATES = + [ + new("Réunion", "RE-RE", "Region") + ]; + + [Fact] + public void GetCountry_ReturnsCorrectInformation_ForReunion() + { + // Arrange + // Act + var country = CountryProvider.GetCountry(EXPECTEDID); + + // Assert + AssertCorrectInformation( + country, + EXPECTEDID, + REUNION_COUNTRY_NAME, + REUNION_OFFICIAL_NAME, + REUNION_NATIVE_NAME, + REUNION_CAPITAL, + REUNION_NUMERIC_CODE, + REUNION_ISO2_CODE, + REUNION_ISO3_CODE, + REUNION_CALLING_CODE, + EXPECTED_STATES + ); + } +} diff --git a/src/World.Net.UnitTests/Countries/RomaniaTest.cs b/src/World.Net.UnitTests/Countries/RomaniaTest.cs new file mode 100644 index 0000000..bcbf25c --- /dev/null +++ b/src/World.Net.UnitTests/Countries/RomaniaTest.cs @@ -0,0 +1,83 @@ +namespace World.Net.UnitTests.Countries; + +public sealed class RomaniaTest : AssertCountryTestBase +{ + private const string ROMANIA_COUNTRY_NAME = "Romania"; + private const string ROMANIA_NATIVE_NAME = "România"; + private const string ROMANIA_CAPITAL = "Bucharest"; + private const string ROMANIA_OFFICIAL_NAME = "Romania"; + private const string ROMANIA_ISO2_CODE = "RO"; + private const string ROMANIA_ISO3_CODE = "ROU"; + private const int ROMANIA_NUMERIC_CODE = 642; + private readonly string[] ROMANIA_CALLING_CODE = ["+40"]; + private const CountryIdentifier EXPECTEDID = CountryIdentifier.Romania; + + private static readonly (string Name, string IsoCode, string Type)[] EXPECTED_STATES = + [ + new("Alba", "RO-AB", "County"), + new("Arad", "RO-AR", "County"), + new("Argeș", "RO-AG", "County"), + new("Bacău", "RO-BC", "County"), + new("Bihor", "RO-BH", "County"), + new("Bistrița-Năsăud", "RO-BN", "County"), + new("Botoșani", "RO-BT", "County"), + new("Brașov", "RO-BV", "County"), + new("Brăila", "RO-BR", "County"), + new("Buzău", "RO-BZ", "County"), + new("Caraș-Severin", "RO-CS", "County"), + new("Călărași", "RO-CL", "County"), + new("Cluj", "RO-CJ", "County"), + new("Constanța", "RO-CT", "County"), + new("Covasna", "RO-CV", "County"), + new("Dâmbovița", "RO-DB", "County"), + new("Dolj", "RO-DJ", "County"), + new("Galați", "RO-GL", "County"), + new("Giurgiu", "RO-GR", "County"), + new("Gorj", "RO-GJ", "County"), + new("Harghita", "RO-HR", "County"), + new("Hunedoara", "RO-HD", "County"), + new("Ialomița", "RO-IL", "County"), + new("Iași", "RO-IS", "County"), + new("Ilfov", "RO-IF", "County"), + new("Maramureș", "RO-MM", "County"), + new("Mehedinți", "RO-MH", "County"), + new("Mureș", "RO-MS", "County"), + new("Neamț", "RO-NT", "County"), + new("Olt", "RO-OT", "County"), + new("Prahova", "RO-PH", "County"), + new("Satu Mare", "RO-SM", "County"), + new("Sălaj", "RO-SJ", "County"), + new("Sibiu", "RO-SB", "County"), + new("Suceava", "RO-SV", "County"), + new("Teleorman", "RO-TR", "County"), + new("Timiș", "RO-TM", "County"), + new("Tulcea", "RO-TL", "County"), + new("Vaslui", "RO-VS", "County"), + new("Vâlcea", "RO-VL", "County"), + new("Vrancea", "RO-VN", "County"), + new("Bucharest", "RO-B", "Municipality") + ]; + + [Fact] + public void GetCountry_ReturnsCorrectInformation_ForRomania() + { + // Arrange + // Act + var country = CountryProvider.GetCountry(EXPECTEDID); + + // Assert + AssertCorrectInformation( + country, + EXPECTEDID, + ROMANIA_COUNTRY_NAME, + ROMANIA_OFFICIAL_NAME, + ROMANIA_NATIVE_NAME, + ROMANIA_CAPITAL, + ROMANIA_NUMERIC_CODE, + ROMANIA_ISO2_CODE, + ROMANIA_ISO3_CODE, + ROMANIA_CALLING_CODE, + EXPECTED_STATES + ); + } +} diff --git a/src/World.Net.UnitTests/Countries/RussiaTest.cs b/src/World.Net.UnitTests/Countries/RussiaTest.cs new file mode 100644 index 0000000..8397704 --- /dev/null +++ b/src/World.Net.UnitTests/Countries/RussiaTest.cs @@ -0,0 +1,124 @@ +namespace World.Net.UnitTests.Countries; + +public sealed class RussiaTest : AssertCountryTestBase +{ + private const string RUSSIA_COUNTRY_NAME = "Russia"; + private const string RUSSIA_NATIVE_NAME = "Россия"; + private const string RUSSIA_CAPITAL = "Moscow"; + private const string RUSSIA_OFFICIAL_NAME = "Russian Federation"; + private const string RUSSIA_ISO2_CODE = "RU"; + private const string RUSSIA_ISO3_CODE = "RUS"; + private const int RUSSIA_NUMERIC_CODE = 643; + private readonly string[] RUSSIA_CALLING_CODE = ["+7"]; + private const CountryIdentifier EXPECTEDID = CountryIdentifier.Russia; + + private static readonly (string Name, string IsoCode, string Type)[] EXPECTED_STATES = + [ + new("Adygea", "RU-AD", "Federal Subject"), + new("Altai Republic", "RU-AL", "Federal Subject"), + new("Altai Krai", "RU-ALT", "Federal Subject"), + new("Amur Oblast", "RU-AMU", "Federal Subject"), + new("Arkhangelsk Oblast", "RU-ARK", "Federal Subject"), + new("Astrakhan Oblast", "RU-AST", "Federal Subject"), + new("Bashkortostan", "RU-BA", "Federal Subject"), + new("Belgorod Oblast", "RU-BEL", "Federal Subject"), + new("Bryansk Oblast", "RU-BRY", "Federal Subject"), + new("Buryatia", "RU-BU", "Federal Subject"), + new("Chechnya", "RU-CE", "Federal Subject"), + new("Chelyabinsk Oblast", "RU-CHE", "Federal Subject"), + new("Chukotka", "RU-CHU", "Federal Subject"), + new("Chuvashia", "RU-CU", "Federal Subject"), + new("Dagestan", "RU-DA", "Federal Subject"), + new("Ingushetia", "RU-IN", "Federal Subject"), + new("Irkutsk Oblast", "RU-IRK", "Federal Subject"), + new("Ivanovo Oblast", "RU-IVA", "Federal Subject"), + new("Jewish Autonomous Oblast", "RU-YEV", "Federal Subject"), + new("Kabardino-Balkaria", "RU-KB", "Federal Subject"), + new("Kaliningrad Oblast", "RU-KGD", "Federal Subject"), + new("Kalmykia", "RU-KL", "Federal Subject"), + new("Kaluga Oblast", "RU-KLU", "Federal Subject"), + new("Kamchatka Krai", "RU-KAM", "Federal Subject"), + new("Karachay-Cherkessia", "RU-KC", "Federal Subject"), + new("Karelia", "RU-KR", "Federal Subject"), + new("Kemerovo Oblast", "RU-KEM", "Federal Subject"), + new("Khabarovsk Krai", "RU-KHA", "Federal Subject"), + new("Khakassia", "RU-KK", "Federal Subject"), + new("Khanty-Mansi Autonomous Okrug", "RU-KHM", "Federal Subject"), + new("Kirov Oblast", "RU-KIR", "Federal Subject"), + new("Komi", "RU-KO", "Federal Subject"), + new("Kostroma Oblast", "RU-KOS", "Federal Subject"), + new("Krasnodar Krai", "RU-KDA", "Federal Subject"), + new("Krasnoyarsk Krai", "RU-KYA", "Federal Subject"), + new("Kurgan Oblast", "RU-KUR", "Federal Subject"), + new("Kursk Oblast", "RU-KRS", "Federal Subject"), + new("Leningrad Oblast", "RU-LEN", "Federal Subject"), + new("Lipetsk Oblast", "RU-LIP", "Federal Subject"), + new("Magadan Oblast", "RU-MAG", "Federal Subject"), + new("Mari El", "RU-ME", "Federal Subject"), + new("Mordovia", "RU-MO", "Federal Subject"), + new("Moscow", "RU-MOS", "Federal Subject"), + new("Moscow Oblast", "RU-MOW", "Federal Subject"), + new("Murmansk Oblast", "RU-MUR", "Federal Subject"), + new("Nenets Autonomous Okrug", "RU-NEN", "Federal Subject"), + new("Nizhny Novgorod Oblast", "RU-NIZ", "Federal Subject"), + new("North Ossetia–Alania", "RU-SE", "Federal Subject"), + new("Novgorod Oblast", "RU-NGR", "Federal Subject"), + new("Novosibirsk Oblast", "RU-NVS", "Federal Subject"), + new("Omsk Oblast", "RU-OMS", "Federal Subject"), + new("Orenburg Oblast", "RU-ORE", "Federal Subject"), + new("Oryol Oblast", "RU-ORL", "Federal Subject"), + new("Penza Oblast", "RU-PNZ", "Federal Subject"), + new("Perm Krai", "RU-PER", "Federal Subject"), + new("Primorsky Krai", "RU-PRI", "Federal Subject"), + new("Pskov Oblast", "RU-PSK", "Federal Subject"), + new("Rostov Oblast", "RU-ROS", "Federal Subject"), + new("Ryazan Oblast", "RU-RYA", "Federal Subject"), + new("Saint Petersburg", "RU-SPE", "Federal Subject"), + new("Sakha Republic (Yakutia)", "RU-SAK", "Federal Subject"), + new("Sakhalin Oblast", "RU-SAKH", "Federal Subject"), + new("Samara Oblast", "RU-SAM", "Federal Subject"), + new("Saratov Oblast", "RU-SAR", "Federal Subject"), + new("Smolensk Oblast", "RU-SMO", "Federal Subject"), + new("Stavropol Krai", "RU-STA", "Federal Subject"), + new("Sverdlovsk Oblast", "RU-SVE", "Federal Subject"), + new("Tambov Oblast", "RU-TAM", "Federal Subject"), + new("Tatarstan", "RU-TA", "Federal Subject"), + new("Tomsk Oblast", "RU-TOM", "Federal Subject"), + new("Tula Oblast", "RU-TUL", "Federal Subject"), + new("Tuva", "RU-TY", "Federal Subject"), + new("Tver Oblast", "RU-TVE", "Federal Subject"), + new("Tyumen Oblast", "RU-TYU", "Federal Subject"), + new("Udmurtia", "RU-UD", "Federal Subject"), + new("Ulyanovsk Oblast", "RU-ULY", "Federal Subject"), + new("Vladimir Oblast", "RU-VLA", "Federal Subject"), + new("Volgograd Oblast", "RU-VGG", "Federal Subject"), + new("Vologda Oblast", "RU-VLG", "Federal Subject"), + new("Voronezh Oblast", "RU-VOR", "Federal Subject"), + new("Yamalo-Nenets Autonomous Okrug", "RU-YAN", "Federal Subject"), + new("Yaroslavl Oblast", "RU-YAR", "Federal Subject"), + new("Zabaykalsky Krai", "RU-ZAB", "Federal Subject") + ]; + + [Fact] + public void GetCountry_ReturnsCorrectInformation_ForRussia() + { + // Arrange + // Act + var country = CountryProvider.GetCountry(EXPECTEDID); + + // Assert + AssertCorrectInformation( + country, + EXPECTEDID, + RUSSIA_COUNTRY_NAME, + RUSSIA_OFFICIAL_NAME, + RUSSIA_NATIVE_NAME, + RUSSIA_CAPITAL, + RUSSIA_NUMERIC_CODE, + RUSSIA_ISO2_CODE, + RUSSIA_ISO3_CODE, + RUSSIA_CALLING_CODE, + EXPECTED_STATES + ); + } +} diff --git a/src/World.Net.UnitTests/Countries/RwandaTest.cs b/src/World.Net.UnitTests/Countries/RwandaTest.cs new file mode 100644 index 0000000..8e883b5 --- /dev/null +++ b/src/World.Net.UnitTests/Countries/RwandaTest.cs @@ -0,0 +1,46 @@ +namespace World.Net.UnitTests.Countries; + +public sealed class RwandaTest : AssertCountryTestBase +{ + private const string RWANDA_COUNTRY_NAME = "Rwanda"; + private const string RWANDA_NATIVE_NAME = "Rwanda"; + private const string RWANDA_CAPITAL = "Kigali"; + private const string RWANDA_OFFICIAL_NAME = "Republic of Rwanda"; + private const string RWANDA_ISO2_CODE = "RW"; + private const string RWANDA_ISO3_CODE = "RWA"; + private const int RWANDA_NUMERIC_CODE = 646; + private readonly string[] RWANDA_CALLING_CODE = ["+250"]; + private const CountryIdentifier EXPECTEDID = CountryIdentifier.Rwanda; + + private static readonly (string Name, string IsoCode, string Type)[] EXPECTED_STATES = + [ + new("Kigali", "RW-KI", "Province"), + new("Eastern", "RW-ES", "Province"), + new("Northern", "RW-NO", "Province"), + new("Western", "RW-WE", "Province"), + new("Southern", "RW-SO", "Province") + ]; + + [Fact] + public void GetCountry_ReturnsCorrectInformation_ForRwanda() + { + // Arrange + // Act + var country = CountryProvider.GetCountry(EXPECTEDID); + + // Assert + AssertCorrectInformation( + country, + EXPECTEDID, + RWANDA_COUNTRY_NAME, + RWANDA_OFFICIAL_NAME, + RWANDA_NATIVE_NAME, + RWANDA_CAPITAL, + RWANDA_NUMERIC_CODE, + RWANDA_ISO2_CODE, + RWANDA_ISO3_CODE, + RWANDA_CALLING_CODE, + EXPECTED_STATES + ); + } +} diff --git a/src/World.Net/Countries/Qatar.cs b/src/World.Net/Countries/Qatar.cs new file mode 100644 index 0000000..1b8f830 --- /dev/null +++ b/src/World.Net/Countries/Qatar.cs @@ -0,0 +1,45 @@ +namespace World.Net.Countries; + +internal sealed class Qatar : ICountry +{ + // + public CountryIdentifier Id => CountryIdentifier.Qatar; + + // + public string Name { get; } = "Qatar"; + + // + public string OfficialName { get; } = "State of Qatar"; + + // + public string NativeName => "دولة قطر"; + + // + public string Capital { get; } = "Doha"; + + // + public int NumericCode { get; } = 634; + + // + public string ISO2Code { get; } = "QA"; + + // + public string ISO3Code { get; } = "QAT"; + + // + public string[] CallingCode { get; } = ["+974"]; + + // + public IEnumerable States => + [ + new("Ad Dawhah", "QA-DA", "Municipality"), + new("Al Khor", "QA-KH", "Municipality"), + new("Al Rayyan", "QA-RA", "Municipality"), + new("Al Shamal", "QA-SH", "Municipality"), + new("Al Wakrah", "QA-WA", "Municipality"), + new("Al Shahaniya", "QA-SN", "Municipality"), + new("Umm Salal", "QA-US", "Municipality"), + new("Al Daayen", "QA-DAA", "Municipality") + ]; +} + diff --git a/src/World.Net/Countries/Reunion.cs b/src/World.Net/Countries/Reunion.cs new file mode 100644 index 0000000..cac061b --- /dev/null +++ b/src/World.Net/Countries/Reunion.cs @@ -0,0 +1,38 @@ +namespace World.Net.Countries; + +internal sealed class Reunion : ICountry +{ + // + public CountryIdentifier Id => CountryIdentifier.Reunion; + + // + public string Name { get; } = "Réunion"; + + // + public string OfficialName { get; } = "Réunion"; + + // + public string NativeName => "Réunion"; + + // + public string Capital { get; } = "Saint-Denis"; + + // + public int NumericCode { get; } = 638; + + // + public string ISO2Code { get; } = "RE"; + + // + public string ISO3Code { get; } = "REU"; + + // + public string[] CallingCode { get; } = ["+262"]; + + // + public IEnumerable States => + [ + new("Réunion", "RE-RE", "Region") + ]; +} + diff --git a/src/World.Net/Countries/Romania.cs b/src/World.Net/Countries/Romania.cs new file mode 100644 index 0000000..97778f2 --- /dev/null +++ b/src/World.Net/Countries/Romania.cs @@ -0,0 +1,79 @@ +namespace World.Net.Countries; + +internal sealed class Romania : ICountry +{ + // + public CountryIdentifier Id => CountryIdentifier.Romania; + + // + public string Name { get; } = "Romania"; + + // + public string OfficialName { get; } = "Romania"; + + // + public string NativeName => "România"; + + // + public string Capital { get; } = "Bucharest"; + + // + public int NumericCode { get; } = 642; + + // + public string ISO2Code { get; } = "RO"; + + // + public string ISO3Code { get; } = "ROU"; + + // + public string[] CallingCode { get; } = ["+40"]; + + // + public IEnumerable States => + [ + new("Alba", "RO-AB", "County"), + new("Arad", "RO-AR", "County"), + new("Argeș", "RO-AG", "County"), + new("Bacău", "RO-BC", "County"), + new("Bihor", "RO-BH", "County"), + new("Bistrița-Năsăud", "RO-BN", "County"), + new("Botoșani", "RO-BT", "County"), + new("Brașov", "RO-BV", "County"), + new("Brăila", "RO-BR", "County"), + new("Buzău", "RO-BZ", "County"), + new("Caraș-Severin", "RO-CS", "County"), + new("Călărași", "RO-CL", "County"), + new("Cluj", "RO-CJ", "County"), + new("Constanța", "RO-CT", "County"), + new("Covasna", "RO-CV", "County"), + new("Dâmbovița", "RO-DB", "County"), + new("Dolj", "RO-DJ", "County"), + new("Galați", "RO-GL", "County"), + new("Giurgiu", "RO-GR", "County"), + new("Gorj", "RO-GJ", "County"), + new("Harghita", "RO-HR", "County"), + new("Hunedoara", "RO-HD", "County"), + new("Ialomița", "RO-IL", "County"), + new("Iași", "RO-IS", "County"), + new("Ilfov", "RO-IF", "County"), + new("Maramureș", "RO-MM", "County"), + new("Mehedinți", "RO-MH", "County"), + new("Mureș", "RO-MS", "County"), + new("Neamț", "RO-NT", "County"), + new("Olt", "RO-OT", "County"), + new("Prahova", "RO-PH", "County"), + new("Satu Mare", "RO-SM", "County"), + new("Sălaj", "RO-SJ", "County"), + new("Sibiu", "RO-SB", "County"), + new("Suceava", "RO-SV", "County"), + new("Teleorman", "RO-TR", "County"), + new("Timiș", "RO-TM", "County"), + new("Tulcea", "RO-TL", "County"), + new("Vaslui", "RO-VS", "County"), + new("Vâlcea", "RO-VL", "County"), + new("Vrancea", "RO-VN", "County"), + new("Bucharest", "RO-B", "Municipality") + ]; +} + diff --git a/src/World.Net/Countries/Russia.cs b/src/World.Net/Countries/Russia.cs new file mode 100644 index 0000000..13e1b06 --- /dev/null +++ b/src/World.Net/Countries/Russia.cs @@ -0,0 +1,120 @@ +namespace World.Net.Countries; + +internal sealed class Russia : ICountry +{ + // + public CountryIdentifier Id => CountryIdentifier.Russia; + + // + public string Name { get; } = "Russia"; + + // + public string OfficialName { get; } = "Russian Federation"; + + // + public string NativeName => "Россия"; + + // + public string Capital { get; } = "Moscow"; + + // + public int NumericCode { get; } = 643; + + // + public string ISO2Code { get; } = "RU"; + + // + public string ISO3Code { get; } = "RUS"; + + // + public string[] CallingCode { get; } = ["+7"]; + + // + public IEnumerable States => + [ + new("Adygea", "RU-AD", "Federal Subject"), + new("Altai Republic", "RU-AL", "Federal Subject"), + new("Altai Krai", "RU-ALT", "Federal Subject"), + new("Amur Oblast", "RU-AMU", "Federal Subject"), + new("Arkhangelsk Oblast", "RU-ARK", "Federal Subject"), + new("Astrakhan Oblast", "RU-AST", "Federal Subject"), + new("Bashkortostan", "RU-BA", "Federal Subject"), + new("Belgorod Oblast", "RU-BEL", "Federal Subject"), + new("Bryansk Oblast", "RU-BRY", "Federal Subject"), + new("Buryatia", "RU-BU", "Federal Subject"), + new("Chechnya", "RU-CE", "Federal Subject"), + new("Chelyabinsk Oblast", "RU-CHE", "Federal Subject"), + new("Chukotka", "RU-CHU", "Federal Subject"), + new("Chuvashia", "RU-CU", "Federal Subject"), + new("Dagestan", "RU-DA", "Federal Subject"), + new("Ingushetia", "RU-IN", "Federal Subject"), + new("Irkutsk Oblast", "RU-IRK", "Federal Subject"), + new("Ivanovo Oblast", "RU-IVA", "Federal Subject"), + new("Jewish Autonomous Oblast", "RU-YEV", "Federal Subject"), + new("Kabardino-Balkaria", "RU-KB", "Federal Subject"), + new("Kaliningrad Oblast", "RU-KGD", "Federal Subject"), + new("Kalmykia", "RU-KL", "Federal Subject"), + new("Kaluga Oblast", "RU-KLU", "Federal Subject"), + new("Kamchatka Krai", "RU-KAM", "Federal Subject"), + new("Karachay-Cherkessia", "RU-KC", "Federal Subject"), + new("Karelia", "RU-KR", "Federal Subject"), + new("Kemerovo Oblast", "RU-KEM", "Federal Subject"), + new("Khabarovsk Krai", "RU-KHA", "Federal Subject"), + new("Khakassia", "RU-KK", "Federal Subject"), + new("Khanty-Mansi Autonomous Okrug", "RU-KHM", "Federal Subject"), + new("Kirov Oblast", "RU-KIR", "Federal Subject"), + new("Komi", "RU-KO", "Federal Subject"), + new("Kostroma Oblast", "RU-KOS", "Federal Subject"), + new("Krasnodar Krai", "RU-KDA", "Federal Subject"), + new("Krasnoyarsk Krai", "RU-KYA", "Federal Subject"), + new("Kurgan Oblast", "RU-KUR", "Federal Subject"), + new("Kursk Oblast", "RU-KRS", "Federal Subject"), + new("Leningrad Oblast", "RU-LEN", "Federal Subject"), + new("Lipetsk Oblast", "RU-LIP", "Federal Subject"), + new("Magadan Oblast", "RU-MAG", "Federal Subject"), + new("Mari El", "RU-ME", "Federal Subject"), + new("Mordovia", "RU-MO", "Federal Subject"), + new("Moscow", "RU-MOS", "Federal Subject"), + new("Moscow Oblast", "RU-MOW", "Federal Subject"), + new("Murmansk Oblast", "RU-MUR", "Federal Subject"), + new("Nenets Autonomous Okrug", "RU-NEN", "Federal Subject"), + new("Nizhny Novgorod Oblast", "RU-NIZ", "Federal Subject"), + new("North Ossetia–Alania", "RU-SE", "Federal Subject"), + new("Novgorod Oblast", "RU-NGR", "Federal Subject"), + new("Novosibirsk Oblast", "RU-NVS", "Federal Subject"), + new("Omsk Oblast", "RU-OMS", "Federal Subject"), + new("Orenburg Oblast", "RU-ORE", "Federal Subject"), + new("Oryol Oblast", "RU-ORL", "Federal Subject"), + new("Penza Oblast", "RU-PNZ", "Federal Subject"), + new("Perm Krai", "RU-PER", "Federal Subject"), + new("Primorsky Krai", "RU-PRI", "Federal Subject"), + new("Pskov Oblast", "RU-PSK", "Federal Subject"), + new("Rostov Oblast", "RU-ROS", "Federal Subject"), + new("Ryazan Oblast", "RU-RYA", "Federal Subject"), + new("Saint Petersburg", "RU-SPE", "Federal Subject"), + new("Sakha Republic (Yakutia)", "RU-SAK", "Federal Subject"), + new("Sakhalin Oblast", "RU-SAKH", "Federal Subject"), + new("Samara Oblast", "RU-SAM", "Federal Subject"), + new("Saratov Oblast", "RU-SAR", "Federal Subject"), + new("Smolensk Oblast", "RU-SMO", "Federal Subject"), + new("Stavropol Krai", "RU-STA", "Federal Subject"), + new("Sverdlovsk Oblast", "RU-SVE", "Federal Subject"), + new("Tambov Oblast", "RU-TAM", "Federal Subject"), + new("Tatarstan", "RU-TA", "Federal Subject"), + new("Tomsk Oblast", "RU-TOM", "Federal Subject"), + new("Tula Oblast", "RU-TUL", "Federal Subject"), + new("Tuva", "RU-TY", "Federal Subject"), + new("Tver Oblast", "RU-TVE", "Federal Subject"), + new("Tyumen Oblast", "RU-TYU", "Federal Subject"), + new("Udmurtia", "RU-UD", "Federal Subject"), + new("Ulyanovsk Oblast", "RU-ULY", "Federal Subject"), + new("Vladimir Oblast", "RU-VLA", "Federal Subject"), + new("Volgograd Oblast", "RU-VGG", "Federal Subject"), + new("Vologda Oblast", "RU-VLG", "Federal Subject"), + new("Voronezh Oblast", "RU-VOR", "Federal Subject"), + new("Yamalo-Nenets Autonomous Okrug", "RU-YAN", "Federal Subject"), + new("Yaroslavl Oblast", "RU-YAR", "Federal Subject"), + new("Zabaykalsky Krai", "RU-ZAB", "Federal Subject") + ]; +} + diff --git a/src/World.Net/Countries/Rwanda.cs b/src/World.Net/Countries/Rwanda.cs new file mode 100644 index 0000000..dc90bde --- /dev/null +++ b/src/World.Net/Countries/Rwanda.cs @@ -0,0 +1,42 @@ +namespace World.Net.Countries; + +internal sealed class Rwanda : ICountry +{ + // + public CountryIdentifier Id => CountryIdentifier.Rwanda; + + // + public string Name { get; } = "Rwanda"; + + // + public string OfficialName { get; } = "Republic of Rwanda"; + + // + public string NativeName => "Rwanda"; + + // + public string Capital { get; } = "Kigali"; + + // + public int NumericCode { get; } = 646; + + // + public string ISO2Code { get; } = "RW"; + + // + public string ISO3Code { get; } = "RWA"; + + // + public string[] CallingCode { get; } = ["+250"]; + + // + public IEnumerable States => + [ + new("Kigali", "RW-KI", "Province"), + new("Eastern", "RW-ES", "Province"), + new("Northern", "RW-NO", "Province"), + new("Western", "RW-WE", "Province"), + new("Southern", "RW-SO", "Province") + ]; +} + diff --git a/src/World.Net/Helpers/CountryInitializer.cs b/src/World.Net/Helpers/CountryInitializer.cs index fa2cfe5..e1b6bf1 100644 --- a/src/World.Net/Helpers/CountryInitializer.cs +++ b/src/World.Net/Helpers/CountryInitializer.cs @@ -155,6 +155,11 @@ public static Dictionary Initialize() { CountryIdentifier.Poland, new Poland() }, { CountryIdentifier.Portugal, new Portugal() }, { CountryIdentifier.PuertoRico, new PuertoRico() }, + { CountryIdentifier.Qatar, new Qatar() }, + { CountryIdentifier.Reunion, new Reunion() }, + { CountryIdentifier.Romania, new Romania() }, + { CountryIdentifier.Russia, new Russia() }, + { CountryIdentifier.Rwanda, new Rwanda() }, // Future countries can be added here in the same format. };