-
Notifications
You must be signed in to change notification settings - Fork 83
/
Regions.cs
109 lines (106 loc) · 4.08 KB
/
Regions.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
namespace OrchardCore.Commerce.AddressDataType;
public static class Regions
{
/// <summary>
/// Gets the list of regions.
/// </summary>
[Obsolete("Use service! This is a temporary attribute.")]
public static IList<Region> All { get; } =
CultureInfo
.GetCultures(CultureTypes.SpecificCultures)
.Where(culture => !culture.Equals(CultureInfo.InvariantCulture) && !culture.IsNeutralCulture)
.Select(culture =>
{
// This sometimes throws "CultureNotFoundException: Culture is not supported." exception on Linux only.
try { return new RegionInfo(culture.LCID); }
catch (CultureNotFoundException) { return null; }
})
.Where(region =>
region != null &&
region.TwoLetterISORegionName.Length == 2 && // Filter out world and other 3-digit regions.
!string.IsNullOrEmpty(region.EnglishName))
.Distinct()
.Select(region => new Region(region))
.ToList();
/// <summary>
/// Gets two-letter regions codes mapped to region names.
/// </summary>
public static IDictionary<string, IDictionary<string, string>> Provinces { get; } =
new Dictionary<string, IDictionary<string, string>>(StringComparer.OrdinalIgnoreCase)
{
["US"] = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
{
["AL"] = "Alabama",
["AK"] = "Alaska",
["AZ"] = "Arizona",
["AR"] = "Arkansas",
["CA"] = "California",
["CO"] = "Colorado",
["CT"] = "Connecticut",
["DE"] = "Delaware",
["DC"] = "District Of Columbia",
["FL"] = "Florida",
["GA"] = "Georgia",
["HI"] = "Hawaii",
["ID"] = "Idaho",
["IL"] = "Illinois",
["IN"] = "Indiana",
["IA"] = "Iowa",
["KS"] = "Kansas",
["KY"] = "Kentucky",
["LA"] = "Louisiana",
["ME"] = "Maine",
["MD"] = "Maryland",
["MA"] = "Massachusetts",
["MI"] = "Michigan",
["MN"] = "Minnesota",
["MS"] = "Mississippi",
["MO"] = "Missouri",
["MT"] = "Montana",
["NE"] = "Nebraska",
["NV"] = "Nevada",
["NH"] = "New Hampshire",
["NJ"] = "New Jersey",
["NM"] = "New Mexico",
["NY"] = "New York",
["NC"] = "North Carolina",
["ND"] = "North Dakota",
["OH"] = "Ohio",
["OK"] = "Oklahoma",
["OR"] = "Oregon",
["PA"] = "Pennsylvania",
["RI"] = "Rhode Island",
["SC"] = "South Carolina",
["SD"] = "South Dakota",
["TN"] = "Tennessee",
["TX"] = "Texas",
["UT"] = "Utah",
["VT"] = "Vermont",
["VA"] = "Virginia",
["WA"] = "Washington",
["WV"] = "West Virginia",
["WI"] = "Wisconsin",
["WY"] = "Wyoming",
},
["CA"] = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
{
{ "AB", "Alberta" },
{ "BC", "British Columbia" },
{ "MB", "Manitoba" },
{ "NB", "New Brunswick" },
{ "NL", "Newfoundland and Labrador" },
{ "NS", "Nova Scotia" },
{ "NT", "Northwest Territories" },
{ "NU", "Nunavut" },
{ "ON", "Ontario" },
{ "PE", "Prince Edward Island" },
{ "QC", "Quebec" },
{ "SK", "Saskatchewan" },
{ "YT", "Yukon" },
},
};
}