Пример #1
0
    public void RecognizeId(string path)
    {
        try
        {
            var text = Recognize(path);
            var res  = text.Split("\n").Where(x => x.Length > 25).TakeLast(2);

            var pData   = IdParser.Parse(res.ElementAt(0), res.ElementAt(1));
            var jsonStr = JsonConvert.SerializeObject(pData);

            var jsonPath = SaveToTemp(jsonStr);

            RecognitionFinished?.Invoke(jsonPath);
        }
        catch (ArgumentOutOfRangeException aOrE)
        {
            Console.WriteLine(aOrE.ToString());
            RecognitionFinished?.Invoke(null);
            throw new ArgumentException(ParseErrorMessage, aOrE);
        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
            RecognitionFinished?.Invoke(null);
            throw e;
        }
    }
Пример #2
0
        public void TestMA2016License()
        {
            var file   = File.ReadAllText("MA License 2016.txt");
            var idCard = IdParser.Parse(file, Validation.None);

            Assert.AreEqual("MORRIS", idCard.FirstName);
            Assert.AreEqual("T", idCard.MiddleName);
            Assert.AreEqual("SAMPLE", idCard.LastName);
            Assert.AreEqual(new DateTime(1971, 12, 31), idCard.DateOfBirth);

#if NET20
            Assert.AreEqual("MA", IdParser.GetAbbreviation(idCard.IssuerIdentificationNumber));
#else
            Assert.AreEqual("MA", idCard.IssuerIdentificationNumber.GetAbbreviation());
#endif
            Assert.AreEqual("S12345678", idCard.IdNumber);
            Assert.AreEqual(new DateTime(2016, 08, 09), idCard.IssueDate);
            Assert.AreEqual(Country.USA, idCard.Country);

            Assert.AreEqual("24 BEACON STREET", idCard.StreetLine1);
#if !NET20
            Assert.AreEqual("MA504", idCard.AdditionalJurisdictionElements.Single(e => e.Key == "ZMZ").Value);
#endif
            Assert.AreEqual("02133-0000", idCard.FormattedPostalCode);

            if (idCard is DriversLicense)
            {
                var license = (DriversLicense)idCard;

                Assert.AreEqual("D", license.Jurisdiction.VehicleClass);
                Assert.AreEqual("NONE", license.Jurisdiction.RestrictionCodes);
            }
        }
Пример #3
0
        public void TestVALicense()
        {
            var file   = File.ReadAllText("VA License.txt");
            var idCard = IdParser.Parse(file);

            Assert.AreEqual("JUSTIN", idCard.FirstName);
            Assert.AreEqual("WILLIAM", idCard.MiddleName);
            Assert.AreEqual("MAURY", idCard.LastName);
            Assert.AreEqual(new DateTime(1958, 07, 15), idCard.DateOfBirth);

#if NET20
            Assert.AreEqual("VA", IdParser.GetAbbreviation(idCard.IssuerIdentificationNumber));
#else
            Assert.AreEqual("VA", idCard.IssuerIdentificationNumber.GetAbbreviation());
#endif
            Assert.AreEqual(new DateTime(2009, 08, 14), idCard.IssueDate);
            Assert.AreEqual(new DateTime(2017, 08, 14), idCard.ExpirationDate);
            Assert.AreEqual(Country.USA, idCard.Country);

            Assert.AreEqual("17 FIRST STREET", idCard.StreetLine1);
            Assert.AreEqual("STAUNTON", idCard.City);
            Assert.AreEqual("244010000", idCard.PostalCode);

            if (idCard is DriversLicense)
            {
                var license = (DriversLicense)idCard;

                Assert.AreEqual("158X9", license.Jurisdiction.RestrictionCodes);
            }
        }
Пример #4
0
        public void TestCTLicense()
        {
            var file   = File.ReadAllText("CT License.txt");
            var idCard = IdParser.Parse(file, Validation.None);

            Assert.AreEqual("ADULT", idCard.FirstName);
            Assert.AreEqual("A", idCard.MiddleName);
            Assert.AreEqual("CTLIC", idCard.LastName);
            Assert.AreEqual(new DateTime(1961, 01, 01), idCard.DateOfBirth);

            Assert.AreEqual(new Height(Version.Aamva2013, "066 in"), idCard.Height);
            Assert.AreEqual("BLU", idCard.EyeColor);
            Assert.IsTrue(idCard.IsOrganDonor);

            Assert.AreEqual("60 STATE ST", idCard.StreetLine1);
            Assert.AreEqual("WETHERSFIELD", idCard.City);
            Assert.AreEqual("061091896", idCard.PostalCode);

#if NET20
            Assert.AreEqual("CT", IdParser.GetAbbreviation(idCard.IssuerIdentificationNumber));
#else
            Assert.AreEqual("CT", idCard.IssuerIdentificationNumber.GetAbbreviation());
#endif
            Assert.AreEqual("990000001", idCard.IdNumber);
            Assert.AreEqual(new DateTime(2015, 01, 01), idCard.ExpirationDate);
            Assert.AreEqual(Country.USA, idCard.Country);

            if (idCard is DriversLicense)
            {
                var license = (DriversLicense)idCard;

                Assert.AreEqual("D", license.Jurisdiction.VehicleClass);
                Assert.AreEqual("B", license.Jurisdiction.RestrictionCodes);
            }
        }
Пример #5
0
        public void TestGALicense()
        {
            var file   = File.ReadAllText("GA License.txt");
            var idCard = IdParser.Parse(file);

            Assert.AreEqual("JANICE", idCard.FirstName);
            Assert.IsNull(idCard.MiddleName);
            Assert.AreEqual("SAMPLE", idCard.LastName);
            Assert.AreEqual("PH.D.", idCard.NameSuffix);
            Assert.AreEqual(new DateTime(1957, 07, 01), idCard.DateOfBirth);

            Assert.AreEqual("123 NORTH STATE ST.", idCard.StreetLine1);
            Assert.AreEqual("ANYTOWN", idCard.City);
            Assert.AreEqual("303340000", idCard.PostalCode);

#if NET20
            Assert.AreEqual("Georgia", IdParser.GetDescription(idCard.IssuerIdentificationNumber));
            Assert.AreEqual("GA", IdParser.GetAbbreviation(idCard.IssuerIdentificationNumber));
#else
            Assert.AreEqual("Georgia", idCard.IssuerIdentificationNumber.GetDescription());
            Assert.AreEqual("GA", idCard.IssuerIdentificationNumber.GetAbbreviation());
#endif
            Assert.AreEqual(new DateTime(2006, 07, 01), idCard.IssueDate);
            Assert.AreEqual(Country.USA, idCard.Country);

            if (idCard is DriversLicense)
            {
                var license = (DriversLicense)idCard;

                Assert.AreEqual("NONE", license.Jurisdiction.RestrictionCodes);
                Assert.AreEqual("C", license.Jurisdiction.VehicleClass);
                Assert.AreEqual("P", license.Jurisdiction.EndorsementCodes);
            }
        }
Пример #6
0
        public void TestNonStandardDataElementSeparator()
        {
            var file   = File.ReadAllText("MA License Piped.txt");
            var idCard = IdParser.Parse(file, Validation.None);

            Assert.AreEqual("S65807412", idCard.IdNumber);
            Assert.AreEqual("123 MAIN STREET", idCard.StreetLine1);
            Assert.AreEqual(Country.USA, idCard.Country);
            Assert.IsInstanceOfType(idCard, typeof(DriversLicense));
        }
Пример #7
0
        public FutureLocation(Uri location)
        {
            if (!location.TryGetValueFromQueryString("id", out var value))
            {
                throw new FormatException($"Location format invalid: {location}");
            }

            var parsedId = IdParser.Parse(value);

            Id = parsedId.ToGuid();

            Address = new Uri(location.GetLeftPart(UriPartial.Path));
        }
Пример #8
0
        private void ParseScanData(string input)
        {
            SetStatus(Level.Info, "Parsing ID");
            var id = IdParser.Parse(input, Validation.None);

            if (id is DriversLicense)
            {
                lblIdType.Text = "Drivers License";
            }
            else
            {
                lblIdType.Text = "Identification Card";
            }

            txtParsedId.Text = JsonConvert.SerializeObject(id, Formatting.Indented);
        }
Пример #9
0
        public void TestMA2009License()
        {
            var file   = File.ReadAllText("MA License 2009.txt");
            var idCard = IdParser.Parse(file, Validation.None);

            Assert.AreEqual("ROBERT", idCard.FirstName);
            Assert.AreEqual("LOWNEY", idCard.MiddleName);
            Assert.AreEqual("SMITH", idCard.LastName);
#if NET20
            Assert.AreEqual("MA", IdParser.GetAbbreviation(idCard.IssuerIdentificationNumber));
#else
            Assert.AreEqual("MA", idCard.IssuerIdentificationNumber.GetAbbreviation());
#endif
            Assert.AreEqual(new DateTime(2016, 06, 29), idCard.IssueDate);
            Assert.AreEqual(new DateTime(1977, 07, 07), idCard.DateOfBirth);
            Assert.AreEqual(Country.USA, idCard.Country);
        }
Пример #10
0
        public void TestNYLicense()
        {
            var file    = File.ReadAllText("NY License.txt");
            var license = IdParser.Parse(file);

            Assert.AreEqual("M", license.FirstName);
            Assert.AreEqual("Motorist", license.MiddleName);
            Assert.AreEqual("Michael", license.LastName);
            Assert.AreEqual(new DateTime(2013, 08, 31), license.DateOfBirth);

#if NET20
            Assert.AreEqual("New York", IdParser.GetDescription(license.IssuerIdentificationNumber));
            Assert.AreEqual("NY", IdParser.GetAbbreviation(license.IssuerIdentificationNumber));
#else
            Assert.AreEqual("New York", license.IssuerIdentificationNumber.GetDescription());
            Assert.AreEqual("NY", license.IssuerIdentificationNumber.GetAbbreviation());
#endif
            Assert.AreEqual(new DateTime(2013, 08, 31), license.IssueDate);
            Assert.AreEqual(new DateTime(2013, 08, 31), license.ExpirationDate);
            Assert.AreEqual(Country.USA, license.Country);

            Assert.AreEqual("2345 ANYWHERE STREET", license.StreetLine1);
            Assert.AreEqual("YOUR CITY", license.City);
        }