/// <summary> /// Rangers the scanner_ transport item in pocket. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The e.</param> private void rangerScanner_TransportItemInPocket(object sender, AxRANGERLib._DRangerEvents_TransportItemInPocketEvent e) { BitmapImage bitImageFront = GetCheckImage(Sides.TransportFront); BitmapImage bitImageBack = GetCheckImage(Sides.TransportRear); string checkMicr = rangerScanner.GetMicrText(1).Replace("-", string.Empty).Replace("!", string.Empty).Trim(); string fileName = checkMicr.Replace(" ", "_"); string[] micrParts = checkMicr.Split(new char[] { 'c', 'd', ' ' }, StringSplitOptions.RemoveEmptyEntries); string routingNumber = micrParts.Length > 0 ? micrParts[0] : "??"; string accountNumber = micrParts.Length > 1 ? micrParts[1] : "??"; string checkNumber = micrParts.Length > 2 ? micrParts[2] : "??"; ScannedCheckInfo scannedCheck = new ScannedCheckInfo(); scannedCheck.FrontImageData = (bitImageFront.StreamSource as MemoryStream).ToArray(); scannedCheck.BackImageData = (bitImageBack.StreamSource as MemoryStream).ToArray(); scannedCheck.RoutingNumber = routingNumber; scannedCheck.AccountNumber = accountNumber; scannedCheck.CheckNumber = checkNumber; ScanningPage.ShowCheckInformation(scannedCheck); if ((micrParts.Length < 3) || routingNumber.Length != 9) { ScanningPage.lblScanWarning.Visibility = Visibility.Visible; rangerScanner.StopFeeding(); } else { ScanningPage.lblScanWarning.Visibility = Visibility.Collapsed; ScannedCheckList.Enqueue(scannedCheck); } }
/// <summary> /// Handles the MicrDataReceived event of the micrImage control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> private void micrImage_MicrDataReceived(object sender, System.EventArgs e) { object dummy = null; string imagePath = string.Empty; string imageIndex = string.Empty; string statusMsg = string.Empty; ScannedCheckInfo scannedCheck = null; if (ScanningPage.ExpectingMagTekBackScan) { scannedCheck = ScannedCheckList.Last(); } else { scannedCheck = new ScannedCheckInfo(); // from MagTek Sample Code scannedCheck.RoutingNumber = micrImage.FindElement(0, "T", 0, "TT", ref dummy); scannedCheck.AccountNumber = micrImage.FindElement(0, "TT", 0, "A", ref dummy); scannedCheck.CheckNumber = micrImage.FindElement(0, "A", 0, "12", ref dummy); } imagePath = Path.GetTempPath(); string checkImageFileName = Path.Combine(imagePath, string.Format("check_{0}_{1}_{2}.tif", scannedCheck.RoutingNumber, scannedCheck.AccountNumber, scannedCheck.CheckNumber).Replace('?', 'X')); if (File.Exists(checkImageFileName)) { File.Delete(checkImageFileName); } try { micrImage.TransmitCurrentImage(checkImageFileName, ref statusMsg); if (!File.Exists(checkImageFileName)) { throw new Exception("Unable to retrieve image"); } else { if (ScanningPage.ExpectingMagTekBackScan) { scannedCheck.BackImageData = File.ReadAllBytes(checkImageFileName); } else { scannedCheck.FrontImageData = File.ReadAllBytes(checkImageFileName); } ScanningPage.ShowCheckInformation(scannedCheck); if (scannedCheck.RoutingNumber.Length != 9) { ScanningPage.lblScanWarning.Visibility = Visibility.Visible; } else { ScanningPage.lblScanWarning.Visibility = Visibility.Collapsed; ScannedCheckList.Enqueue(scannedCheck); } File.Delete(checkImageFileName); } } finally { micrImage.ClearBuffer(); } }