Netizine.Enums.Country 1.0.1

A country enum created to simplyfy mapping countries to a enum. Created from the country data exttracted from Wikipedia. Provides a few extension methods to easilly access country name, decription, state name, ISO 3166-1 codes such as the alpha-2, alpha-3 and numeric codes, country flags etc .

Install-Package Netizine.Enums.Country -Version 1.0.1
dotnet add package Netizine.Enums.Country --version 1.0.1
<PackageReference Include="Netizine.Enums.Country" Version="1.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Netizine.Enums.Country --version 1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Netizine.Enums.Country

A country enum created to simplify mapping countries to an enum.
Created from the country data extracted from Wikipedia.

Provides a few extension methods to easily access country name, description, state name, ISO 3166-1 codes such as the Alpha-2, Alpha-3 and Numeric codes etc as shown below.
Extension Methods

As a example, calling the following code

var imageUri = countries.First().GetDataURIImage();

Would return data:image/png;base64,iVBO........ which you can use to render a png country flag for the United States of America United States of America

in the case of convert to and from JSON, I have included a CountryConverter that you can use to try multiple different ways to cast to the correct enum namely country name, country description, the ISO 3166-1 codes etc.

        static void Main(string[] args)
        {
            var countries = ((Country[]) Enum.GetValues(typeof(Country)))
                .Where(countryEnum => countryEnum == Country.UnitedStatesOfAmerica || countryEnum == Country.UnitedKingdom).ToList();
            var json = JsonConvert.SerializeObject(countries, Converter.Settings);
            var newCountries = JsonConvert.DeserializeObject<List<Country>>(json, Converter.Settings);
            
            //Validate USA post code
            var usa = Country.UnitedStatesOfAmerica;
            var r = new Regex(usa.GetPostalCodeRegex());
            var postalCodeValid = r.IsMatch("85001");
            var postalCodeInvalid = r.IsMatch("85001A");
        }

        public static class Converter
        {
            public static readonly JsonSerializerSettings Settings = new JsonSerializerSettings
            {
                MetadataPropertyHandling = MetadataPropertyHandling.Ignore,
                DateParseHandling = DateParseHandling.None,
                Converters =
                {
                    CountryConverter.Singleton,
                    new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AssumeUniversal }
                },
            };
        }

Netizine.Enums.Country

A country enum created to simplify mapping countries to an enum.
Created from the country data extracted from Wikipedia.

Provides a few extension methods to easily access country name, description, state name, ISO 3166-1 codes such as the Alpha-2, Alpha-3 and Numeric codes etc as shown below.
Extension Methods

As a example, calling the following code

var imageUri = countries.First().GetDataURIImage();

Would return data:image/png;base64,iVBO........ which you can use to render a png country flag for the United States of America United States of America

in the case of convert to and from JSON, I have included a CountryConverter that you can use to try multiple different ways to cast to the correct enum namely country name, country description, the ISO 3166-1 codes etc.

        static void Main(string[] args)
        {
            var countries = ((Country[]) Enum.GetValues(typeof(Country)))
                .Where(countryEnum => countryEnum == Country.UnitedStatesOfAmerica || countryEnum == Country.UnitedKingdom).ToList();
            var json = JsonConvert.SerializeObject(countries, Converter.Settings);
            var newCountries = JsonConvert.DeserializeObject<List<Country>>(json, Converter.Settings);
            
            //Validate USA post code
            var usa = Country.UnitedStatesOfAmerica;
            var r = new Regex(usa.GetPostalCodeRegex());
            var postalCodeValid = r.IsMatch("85001");
            var postalCodeInvalid = r.IsMatch("85001A");
        }

        public static class Converter
        {
            public static readonly JsonSerializerSettings Settings = new JsonSerializerSettings
            {
                MetadataPropertyHandling = MetadataPropertyHandling.Ignore,
                DateParseHandling = DateParseHandling.None,
                Converters =
                {
                    CountryConverter.Singleton,
                    new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AssumeUniversal }
                },
            };
        }

Release Notes

Initial Release

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
1.0.1 106 6/16/2020
1.0.0 99 6/16/2020