diff --git a/IdParser.Tests/DriversLicenseTests.cs b/IdParser.Tests/DriversLicenseTests.cs
index 5dea0f2..3f6da35 100644
--- a/IdParser.Tests/DriversLicenseTests.cs
+++ b/IdParser.Tests/DriversLicenseTests.cs
@@ -12,6 +12,7 @@ public void TestMA2009License() {
var idCard = IdParser.Parse(file, true);
Assert.AreEqual("SMITH", idCard.LastName);
+ Assert.AreEqual("MA", idCard.IssuerIdentificationNumber.GetAbbreviation());
}
[TestMethod]
@@ -24,6 +25,7 @@ public void TestMA2016License() {
Assert.AreEqual("24 BEACON STREET", idCard.StreetLine1);
Assert.AreEqual("MA504", idCard.AdditionalJurisdictionElements.Single(e => e.Key == "ZMZ").Value);
Assert.AreEqual("02133-0000", idCard.FormattedPostalCode);
+ Assert.AreEqual("MA", idCard.IssuerIdentificationNumber.GetAbbreviation());
if (idCard is DriversLicense) {
var license = (DriversLicense)idCard;
@@ -41,6 +43,7 @@ public void TestNYLicense() {
Assert.AreEqual("Michael", license.LastName);
Assert.AreEqual(new DateTime(2013, 08, 31), license.DateOfBirth);
Assert.AreEqual("New York", license.IssuerIdentificationNumber.GetDescription());
+ Assert.AreEqual("NY", license.IssuerIdentificationNumber.GetAbbreviation());
}
[TestMethod]
@@ -49,6 +52,7 @@ public void TestVALicense() {
var idCard = IdParser.Parse(file);
Assert.AreEqual("STAUNTON", idCard.City);
+ Assert.AreEqual("VA", idCard.IssuerIdentificationNumber.GetAbbreviation());
if (idCard is DriversLicense) {
var license = (DriversLicense)idCard;
@@ -65,6 +69,7 @@ public void TestGALicense()
Assert.AreEqual("123 NORTH STATE ST.", idCard.StreetLine1);
Assert.AreEqual("Georgia", idCard.IssuerIdentificationNumber.GetDescription());
+ Assert.AreEqual("GA", idCard.IssuerIdentificationNumber.GetAbbreviation());
if (idCard is DriversLicense) {
var license = (DriversLicense)idCard;
@@ -82,6 +87,7 @@ public void TestCTLicense()
Assert.IsTrue(idCard.IsOrganDonor);
Assert.AreEqual("CTLIC", idCard.LastName);
Assert.AreEqual("990000001", idCard.IdNumber);
+ Assert.AreEqual("CT", idCard.IssuerIdentificationNumber.GetAbbreviation());
}
[TestMethod]
diff --git a/IdParser/AbbreviationAttribute.cs b/IdParser/AbbreviationAttribute.cs
new file mode 100644
index 0000000..3288631
--- /dev/null
+++ b/IdParser/AbbreviationAttribute.cs
@@ -0,0 +1,12 @@
+using System;
+
+namespace IdParser {
+ [AttributeUsage(AttributeTargets.All)]
+ public class AbbreviationAttribute : Attribute {
+ public string Abbreviation { get; set; }
+
+ public AbbreviationAttribute(string abbreviation) {
+ Abbreviation = abbreviation;
+ }
+ }
+}
\ No newline at end of file
diff --git a/IdParser/IdParser.cs b/IdParser/IdParser.cs
index 5ba4d26..977e7e7 100644
--- a/IdParser/IdParser.cs
+++ b/IdParser/IdParser.cs
@@ -124,6 +124,14 @@ public static string GetDescription(this Enum value) {
return attribute == null ? value.ToString() : attribute.Description;
}
+
+ public static string GetAbbreviation(this Enum value) {
+ var field = value.GetType().GetField(value.ToString());
+
+ var attribute = Attribute.GetCustomAttribute(field, typeof(AbbreviationAttribute)) as AbbreviationAttribute;
+
+ return attribute == null ? value.ToString() : attribute.Abbreviation;
+ }
}
public enum Version : byte {
@@ -140,90 +148,156 @@ public enum Version : byte {
}
public enum IssuerIdentificationNumber {
+ [Abbreviation("AL")]
Alabama = 636033,
+ [Abbreviation("AK")]
Alaska = 636059,
+ [Abbreviation("AS")]
[Description("American Samoa")]
AmericanSamoa = 604427,
+ [Abbreviation("AZ")]
Arizona = 636026,
+ [Abbreviation("AR")]
Arkansas = 636026,
+ [Abbreviation("BC")]
[Description("British Columbia")]
BritishColumbia = 636028,
+ [Abbreviation("CA")]
California = 636014,
+ [Abbreviation("COA")]
Coahuila = 636056,
+ [Abbreviation("CO")]
Colorado = 636020,
+ [Abbreviation("CT")]
Connecticut = 636006,
+ [Abbreviation("DC")]
[Description("District of Columbia")]
DistrictOfColumbia = 636043,
+ [Abbreviation("DE")]
Delaware = 636011,
+ [Abbreviation("FL")]
Florida = 636010,
+ [Abbreviation("GA")]
Georgia = 636055,
+ [Abbreviation("GU")]
Guam = 636019,
+ [Abbreviation("HI")]
Hawaii = 636047,
+ [Abbreviation("HID")]
Hidalgo = 636057,
+ [Abbreviation("ID")]
Idaho = 636050,
+ [Abbreviation("IL")]
Illinois = 636035,
+ [Abbreviation("IN")]
Indiana = 636037,
+ [Abbreviation("IA")]
Iowa = 636018,
+ [Abbreviation("KS")]
Kansas = 636022,
+ [Abbreviation("KY")]
Kentucky = 636046,
+ [Abbreviation("LA")]
Louisiana = 636007,
+ [Abbreviation("ME")]
Maine = 636041,
+ [Abbreviation("MB")]
Manitoba = 636048,
+ [Abbreviation("MD")]
Maryland = 636003,
+ [Abbreviation("MA")]
Massachusetts = 636002,
+ [Abbreviation("MI")]
Michigan = 636032,
+ [Abbreviation("MN")]
Minnesota = 636038,
+ [Abbreviation("MS")]
Mississippi = 636051,
+ [Abbreviation("MO")]
Missouri = 636030,
+ [Abbreviation("MT")]
Montana = 636008,
+ [Abbreviation("NE")]
Nebraska = 636054,
+ [Abbreviation("NV")]
Nevada = 636049,
+ [Abbreviation("NB")]
[Description("New Brunswick")]
NewBrunswick = 636017,
+ [Abbreviation("ND")]
[Description("New Hampshire")]
NewHampshire = 636039,
+ [Abbreviation("NJ")]
[Description("New Jersey")]
NewJersey = 636036,
+ [Abbreviation("NM")]
[Description("New Mexico")]
NewMexico = 636009,
+ [Abbreviation("NY")]
[Description("New York")]
NewYork = 636001,
+ [Abbreviation("NL")]
Newfoundland = 636016,
+ [Abbreviation("NC")]
[Description("North Carolina")]
NorthCarolina = 636004,
+ [Abbreviation("ND")]
[Description("North Dakota")]
NorthDakota = 636034,
+ [Abbreviation("NS")]
[Description("Nova Scotia")]
NovaScotia = 636013,
+ [Abbreviation("OH")]
Ohio = 636023,
+ [Abbreviation("OK")]
Oklahoma = 636058,
+ [Abbreviation("ON")]
Ontario = 636012,
+ [Abbreviation("OR")]
Oregon = 636029,
+ [Abbreviation("PA")]
Pennsylvania = 636025,
+ [Abbreviation("PE")]
[Description("Price Edward Island")]
PrinceEdwardIsland = 604426,
+ [Abbreviation("QC")]
Quebec = 604428,
+ [Abbreviation("RI")]
[Description("Rhode Island")]
RhodeIsland = 636052,
+ [Abbreviation("SK")]
Saskatchewan = 636044,
+ [Abbreviation("SC")]
[Description("South Carolina")]
SouthCarolina = 636005,
+ [Abbreviation("SD")]
[Description("South Dakota")]
SouthDakota = 636042,
+ [Abbreviation("TN")]
Tennessee = 636053,
[Description("US State Department")]
UsStateDepartment = 636027,
+ [Abbreviation("TX")]
Texas = 636015,
+ [Abbreviation("VI")]
[Description("US Virgin Islands")]
UsVirginIslands = 636062,
+ [Abbreviation("UT")]
Utah = 636040,
+ [Abbreviation("VT")]
Vermont = 636024,
+ [Abbreviation("VA")]
Virginia = 636000,
+ [Abbreviation("WA")]
Washington = 636045,
+ [Abbreviation("WV")]
[Description("West Virginia")]
WestVirginia = 636061,
+ [Abbreviation("WI")]
Wisconsin = 636031,
+ [Abbreviation("WY")]
Wyoming = 636060,
+ [Abbreviation("YT")]
Yukon = 604429
}
diff --git a/IdParser/IdParser.csproj b/IdParser/IdParser.csproj
index 33f2d2e..7a353dc 100644
--- a/IdParser/IdParser.csproj
+++ b/IdParser/IdParser.csproj
@@ -41,6 +41,7 @@
+