Пример #1
0
        public static void ParseResults(string results, ref DriversLicenseFields.Fields dlFields)
        {
            string[]  separator       = { "DAQ", "DAA", "DCS", "DAC", "DAD", "DCT", "DBB", "DAG", "DAI", "DAJ", "DAK" };
            char[]    separator_chars = { '\n', '\r' };
            string [] outputs         = results.Split(separator_chars);

            string[] split_result;

            foreach (string output in outputs)
            {
                if (!String.IsNullOrWhiteSpace(output) && output.Length >= 3)
                {
                    if (output.Contains("DAA"))
                    {
                        split_result       = output.Split(separator, StringSplitOptions.None);
                        dlFields.full_name = split_result[1];
                    }
                    else if (output.Contains("DCS"))
                    {
                        split_result       = output.Split(separator, StringSplitOptions.None);
                        dlFields.last_name = split_result[1];
                    }
                    else if (output.Contains("DAC"))
                    {
                        split_result        = output.Split(separator, StringSplitOptions.None);
                        dlFields.first_name = split_result[1];
                    }
                    else if (output.Contains("DAD"))
                    {
                        split_result         = output.Split(separator, StringSplitOptions.None);
                        dlFields.middle_name = split_result[1];
                    }
                    else if (output.Contains("DCT"))
                    {
                        split_result          = output.Split(separator, StringSplitOptions.None);
                        dlFields.first_middle = split_result[1];
                    }
                    else if (output.Contains("DBB"))
                    {
                        split_result      = output.Split(separator, StringSplitOptions.None);
                        dlFields.birthday = split_result[1];
                    }
                    else if (output.Contains("DAG"))
                    {
                        split_result     = output.Split(separator, StringSplitOptions.None);
                        dlFields.address = split_result[1];
                    }
                    else if (output.Contains("DAI"))
                    {
                        split_result  = output.Split(separator, StringSplitOptions.None);
                        dlFields.city = split_result[1];
                    }
                    else if (output.Contains("DAJ"))
                    {
                        split_result   = output.Split(separator, StringSplitOptions.None);
                        dlFields.state = split_result[1];
                    }
                    else if (output.Contains("DAK"))
                    {
                        split_result = output.Split(separator, StringSplitOptions.None);
                        dlFields.zip = split_result[1];
                    }
                    else if (output.Contains("DAQ"))
                    {
                        split_result     = output.Split(separator, StringSplitOptions.None);
                        dlFields.license = split_result[1];
                    }
                    else if (output.Contains("DBC"))
                    {
                        split_result    = output.Split(separator, StringSplitOptions.None);
                        dlFields.gender = split_result[1];
                    }
                    else if (output.Contains("DAU"))
                    {
                        split_result    = output.Split(separator, StringSplitOptions.None);
                        dlFields.height = split_result[1];
                    }
                    else if (output.Contains("DAW"))
                    {
                        split_result    = output.Split(separator, StringSplitOptions.None);
                        dlFields.weight = split_result[1];
                    }
                }
            }
        }
Пример #2
0
        private void Scan_Clicked(object sender, EventArgs e)
        {
            MobileBarcodeScanningOptions options = new MobileBarcodeScanningOptions();

            options.PossibleFormats = new List <ZXing.BarcodeFormat>()
            {
                ZXing.BarcodeFormat.PDF_417
            };

            var scanPage = new ZXingScannerPage(options);

            Navigation.PushAsync(scanPage);
            scanPage.OnScanResult += (result) =>
            {
                scanPage.IsScanning = false;

                Device.BeginInvokeOnMainThread(async() =>
                {
                    await Navigation.PopAsync();

                    // Outputting Drivers License Info to App
                    DriversLicenseFields.Fields dlFields = new DriversLicenseFields.Fields();
                    try
                    {
                        BarcodeParser.ParseResults(result.Text, ref dlFields);
                    }
                    catch (Exception ex)
                    {
                        await DisplayAlert("Invalid Barcode", "The barcode could not be read! Please be sure you are scanning a valid Drivers License", "Ok");
                    }

                    last_name.Text = dlFields.last_name;
                    if (dlFields.first_middle != null)
                    {
                        first_middle.Text      = dlFields.first_middle;
                        first_middle.IsVisible = true;
                        first_name.IsVisible   = false;
                        middle_name.IsVisible  = false;
                        full_name.IsVisible    = false;
                        last_name.IsVisible    = true;
                    }
                    else if (dlFields.first_name != null && dlFields.last_name != null)
                    {
                        first_name.Text        = dlFields.first_name;
                        middle_name.Text       = dlFields.middle_name;
                        first_name.IsVisible   = true;
                        middle_name.IsVisible  = true;
                        first_middle.IsVisible = false;
                        full_name.IsVisible    = false;
                        last_name.IsVisible    = true;
                    }
                    else
                    {
                        full_name.Text         = dlFields.full_name;
                        full_name.IsVisible    = true;
                        first_name.IsVisible   = false;
                        middle_name.IsVisible  = false;
                        first_middle.IsVisible = false;
                        last_name.IsVisible    = false;
                    }

                    string month;
                    string day;
                    string year;
                    if ((dlFields.birthday[0] == '1' && dlFields.birthday[1] == '9') || (dlFields.birthday[0] == '2' && dlFields.birthday[1] == '0'))
                    {
                        year  = dlFields.birthday.Substring(0, 4);
                        month = dlFields.birthday.Substring(4, 2);
                        day   = dlFields.birthday.Substring(6, 2);
                    }
                    else
                    {
                        month = dlFields.birthday.Substring(0, 2);
                        day   = dlFields.birthday.Substring(2, 2);
                        year  = dlFields.birthday.Substring(4, 4);
                    }

                    birthday.Text = month + "/" + day + "/" + year;
                    address.Text  = dlFields.address;
                    city.Text     = dlFields.city;
                    state.Text    = dlFields.state;
                    zip.Text      = dlFields.zip;
                    license.Text  = dlFields.license;
                });
            };
        }