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]; } } } }
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; }); }; }