Netizine.Enums.Country 1.0.1

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.
#r "nuget: Netizine.Enums.Country, 1.0.1"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install Netizine.Enums.Country as a Cake Addin
#addin nuget:?package=Netizine.Enums.Country&version=1.0.1

// Install Netizine.Enums.Country as a Cake Tool
#tool nuget:?package=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 }
                },
            };
        }

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.1 609 6/16/2020
1.0.0 200 6/16/2020

Initial Release