Exemplo n.º 1
0
        /// <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);
            }
        }
Exemplo n.º 2
0
        /// <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();
            }
        }