//Helps to automatically trigger the scanning of next finger if the
        //number of already captured fingers is less than 10
        public void InitNextFingerScan(FingerDescription previousDescription, int previousFingerprintScanPosition)
        {
            _deviceManager = new NDeviceManager();
            if (previousFingerprintScanPosition > 0)
            {
                _fingerprintScanPosition = previousFingerprintScanPosition;
                _FingerDescription       = previousDescription;
            }
            else
            {
                _fingerprintCount = _formMain.GetActiveUserFingerRecordsCount();
                if (_fingerprintCount <= 10)
                {
                    //Get the next finger to be scanned using the previous scanned finger
                    var next = (int)previousDescription;
                    next += 1;
                    _FingerDescription       = (FingerDescription)next;
                    _fingerprintScanPosition = next;
                }
            }

            _biometricClient = new NBiometricClient {
                UseDeviceManager = true, BiometricTypes = NBiometricType.Finger
            };
            _biometricClient.Initialize();

            _EnrollFromSingleFingerScanner = new EnrollFromScanner(this, _CaptureFingerNotifyer, _FingerDescription, _fingerprintScanPosition, _fingerprintCount)
            {
                CaptureFingerNotifyer = _CaptureFingerNotifyer,
                Dock            = DockStyle.Fill,
                BiometricClient = _biometricClient
            };
            Controls.Clear();
            Controls.Add(_EnrollFromSingleFingerScanner);
        }
Exemple #2
0
 public EnrollFromScanner(FormCaptureSingleScannerFinger formCaptureSingleScannerFinger, CaptureFingerNotifyer _captureFingerNotifyer, FingerDescription fingerDescription, int fingerprintScanPosition, int fingerprintCount)
 {
     _fingerDescription       = fingerDescription;
     _formSingleScanFinger    = formCaptureSingleScannerFinger;
     _fingerprintCount        = fingerprintCount;
     _fingerprintScanPosition = fingerprintScanPosition;
     InitializeComponent();
     lblFingerprintScanCount.Text = _fingerprintCount.ToString();
 }
 public bool SaveBioRecord(NFinger finger, NSubject fingerSubject, FingerDescription fingerDescription, bool isTrue)
 {
     try
     {
         return(_CaptureFingerNotifyer(finger, fingerSubject, fingerDescription, isTrue));
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.ToString());
         return(false);
     }
 }
 public FormCaptureSingleScannerFinger(FormMain formMain, CaptureFingerNotifyer captureFingerNotifyer, FingerDescription fingerDescription, int capturedFingersprintCount)
 {
     //Obtain Fingerprint Components Licenses
     try
     {
         _formMain = formMain;
         NLicense.ObtainComponents(Address, Port, FingerprintComponents);
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.ToString(), string.Empty, MessageBoxButtons.OK, MessageBoxIcon.Error);
         return;
     }
     _FingerDescription       = fingerDescription;
     _fingerprintScanPosition = capturedFingersprintCount;
     _fingerprintCount        = capturedFingersprintCount;
     _CaptureFingerNotifyer   = captureFingerNotifyer;
     InitializeComponent();
     _formMain.UpdateFingerInit();
     _fingerDescriptions = new List <FingerDescription>();
     EnumerateFingerDescription();
 }
Exemple #5
0
        private int GetFingerIndex(FingerDescription fingerDescription)
        {
            switch (fingerDescription)
            {
            case FingerDescription.LFLittle:
                return(1);

            case FingerDescription.LFRing:
                return(2);

            case FingerDescription.LFMiddle:
                return(3);

            case FingerDescription.LFIndex:
                return(4);

            case FingerDescription.LFThumb:
                return(5);

            case FingerDescription.RFThumb:
                return(6);

            case FingerDescription.RFIndex:
                return(7);

            case FingerDescription.RFMiddle:
                return(8);

            case FingerDescription.RFRing:
                return(9);

            case FingerDescription.RFLittle:
                return(10);

            default:
                return(0);
            }
        }
Exemple #6
0
        internal bool SaveActiveUserFingerRecords(NFinger finger, NSubject fingerSubject, FingerDescription fingerDescription)
        {
            try
            {
                var buffArray = fingerSubject?.GetTemplateBuffer().ToArray();

                var fRecord = new FingerImageRecord
                {
                    FingerIndex       = GetFingerIndex(fingerDescription),
                    FingerDescription = fingerDescription,
                    FingerRecord      = finger?.Objects[0].Template,
                    FingerSubject     = fingerSubject,
                    FingerTemplate    = buffArray
                };

                if (finger != null)
                {
                    var wsq = finger.Image.Save(NImageFormat.Wsq);
                    fRecord.FingerImage = finger.Image.ToBitmap();
                    fRecord.FingerWsq   = wsq?.ToArray();
                    int fingersCount = 0;
                    var status       = CheckDuplicate(fRecord);
                    return(status);
                }
                return(false);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return(false);
            }
        }