Ejemplo n.º 1
0
        private void bnEnroll_Click(object sender, EventArgs e)
        {
            userType = 0;


            var         registerUSerId = textBox1_SocialID.Text;
            ExAttDBRepo eA             = new ExAttDBRepo();
            ExUniDBRepo eU             = new ExUniDBRepo();

            var r = eA.IsRegisterdBefor(registerUSerId);

            if (r.Uni_ID > 0)
            {
                IsRegister = true;
                DisplayMessage("this Uni_ID Is registerd before", true);

                if (captureThread != null && captureThread.IsAlive)
                {
                    Utilities.EnableControls(false, btnEnroll);
                }
            }
            else
            {
                IsRegister = false;
            }
            var s  = eU.GetStudent(registerUSerId);
            var em = eU.GetEmployee(registerUSerId);


            if (em.Emp_ID < 1 && s.Stu_ID < 1)
            {
                DisplayMessage("this Uni_ID Is not found", true);
                IsRegister = true;
            }


            //else if (s.Stu_ID < 1 )
            //{
            //    DisplayMessage("this Uni_ID Is not found", true);
            //    IsRegister = true;

            //}

            if (!IsRegister)
            {
                ClearImage();
                IsRegister    = true;
                RegisterCount = 0;
                regTempLen    = 0;
                Utilities.EnableControls(false, btnEnroll, button1, btnVerify, btnIdentify);
                DisplayMessage("Please press your finger " + REGISTER_FINGER_COUNT + " times to register", true);

                lblFingerPrintCount.Visible = true;
                lblFingerPrintCount.Text    = REGISTER_FINGER_COUNT.ToString();
            }
            bnInit_Click();
        }
Ejemplo n.º 2
0
        private void button1_CheckSOcialID_Click(object sender, EventArgs e)
        {
            userType = 0;
            ExAttDBRepo eA = new ExAttDBRepo();

            long selectedStudentId = 0;

            if (textBox1_SocialID.Text.Length > 0)
            {
                selectedStudentId = long.Parse(textBox1_SocialID.Text);

                CanRegisterId = false;

                var u = new ExUniDBRepo();
                var a = new ExAttDBRepo();

                var allStudents  = u.GetAllStudents();
                var allEmployees = u.GetAllEmployees();

                var selectedStudentModel  = allStudents.Where(su => su.Stu_ID == selectedStudentId).FirstOrDefault();
                var selectedEmoloyeeModel = allEmployees.Where(em => em.Emp_ID == selectedStudentId).FirstOrDefault();



                var r = eA.IsRegisterdBefor(textBox1_SocialID.Text);



                if (selectedStudentModel != null && selectedStudentModel.Stu_ID > 0)
                {
                    label2_searchResult.Text = selectedStudentModel.Stu_ID + "," + selectedStudentModel.Stu_First_Name + " " + selectedStudentModel.Stu_Last_Name;

                    if (captureThread != null && captureThread.IsAlive && r.Uni_ID < 1)
                    {
                        CanRegisterId = true;
                        Utilities.EnableControls(true, btnEnroll);
                    }
                }
                else if (selectedEmoloyeeModel != null && selectedEmoloyeeModel.Emp_ID > 0)
                {
                    label2_searchResult.Text = selectedEmoloyeeModel.Emp_ID + "," + selectedEmoloyeeModel.Emp_First_Name + " " + selectedEmoloyeeModel.Emp_Last_Name;

                    if (captureThread != null && captureThread.IsAlive && r.Uni_ID < 1)
                    {
                        CanRegisterId = true;

                        Utilities.EnableControls(true, btnEnroll);
                    }
                }
                else
                {
                    label2_searchResult.Text = "Not Found";
                    Utilities.EnableControls(false, btnEnroll);
                }

                //MessageBox.Show("Regidsterd Befor");
            }
            else
            {
                label2_searchResult.Text = "Please fill out this field";
            }
        }
Ejemplo n.º 3
0
        protected override void DefWndProc(ref Message m)
        {
            ExAttDBRepo exAttDBRepo = new ExAttDBRepo();

            switch (m.Msg)
            {
            case MESSAGE_CAPTURED_OK:
            {
                parentForm.statusBar.Visible = false;

                if (!bIdentify2 || !bIdentify)
                {
                    DisplayFingerPrintImage();
                }

                if (IsRegister)
                {
                    #region -------- IF REGISTERED FINGERPRINT --------

                    int ret = zkfp.ZKFP_ERR_OK;
                    int fid = 0, score = 0;
                    ret = fpInstance.Identify(CapTmp, ref fid, ref score);
                    if (zkfp.ZKFP_ERR_OK == ret)
                    {
                        int deleteCode = fpInstance.DelRegTemplate(fid);           // <---- REMOVE FINGERPRINT
                        if (deleteCode != zkfp.ZKFP_ERR_OK)
                        {
                            DisplayMessage(MessageManager.msg_FP_CurrentFingerAlreadyRegistered + fid, false);
                            return;
                        }
                    }
                    if (RegisterCount > 0 && fpInstance.Match(CapTmp, RegTmps[RegisterCount - 1]) <= 0)
                    {
                        DisplayMessage("Please press the same finger " + REGISTER_FINGER_COUNT + " times for enrollment", true);

                        return;
                    }
                    Array.Copy(CapTmp, RegTmps[RegisterCount], cbCapTmp);


                    if (RegisterCount == 0)
                    {
                        btnEnroll.Enabled = false;
                    }

                    RegisterCount++;
                    if (RegisterCount >= REGISTER_FINGER_COUNT)
                    {
                        RegisterCount = 0;
                        ret           = GenerateRegisteredFingerPrint(); // <--- GENERATE FINGERPRINT TEMPLATE

                        if (zkfp.ZKFP_ERR_OK == ret)
                        {
                            ret = AddTemplateToMemory();                //  <--- LOAD TEMPLATE TO MEMORY
                            if (zkfp.ZKFP_ERR_OK == ret)                // <--- ENROLL SUCCESSFULL
                            {
                                string fingerPrintTemplate = string.Empty;
                                zkfp.Blob2Base64String(RegTmp, regTempLen, ref fingerPrintTemplate);

                                Utilities.EnableControls(true, button1, btnVerify, btnIdentify);
                                Utilities.EnableControls(false, btnEnroll);

                                MySqlConnection connection = null;
                                try
                                {
                                    var registerUSerId = "0";
                                    registerUSerId = textBox1_SocialID.Text;

                                    const String    SERVER   = "sql248.main-hosting.eu";
                                    const String    DATABASE = "u842190477_Exattend";
                                    const String    UID      = "u842190477_Admin";
                                    const String    PASSWORD = "******";
                                    MySqlConnection dbConn;
                                    String          query = @"INSERT INTO u842190477_Exattend.fingerprint(Uni_ID, Fin_Code, FingerTemplate)VALUES(" + registerUSerId + ", " + 0 + ", '" + fingerPrintTemplate + "'); ";
                                    MySqlConnectionStringBuilder builder = new MySqlConnectionStringBuilder();
                                    builder.Server   = SERVER;
                                    builder.UserID   = UID;
                                    builder.Password = PASSWORD;
                                    builder.Database = DATABASE;

                                    String connString = builder.ToString();

                                    builder = null;

                                    Console.WriteLine(connString);

                                    dbConn = new MySqlConnection(connString);

                                    MySqlCommand cmd = new MySqlCommand(query, dbConn);
                                    dbConn.Open();

                                    cmd.ExecuteNonQuery();

                                    cmd.Connection = connection;
                                    dbConn.Close();
                                }
                                finally
                                {
                                    if (connection != null)
                                    {
                                        connection.Close();
                                    }
                                }



                                //var zz = exAttDBRepo.GetAllEmployees();
                                //exAttDBRepo.inserFingerPrintToDB(textBox1_SocialID.Text, fingerPrintTemplate);
                                // GET THE TEMPLATE HERE : fingerPrintTemplate


                                DisplayMessage(MessageManager.msg_FP_EnrollSuccessfull, true);

                                DisconnectFingerPrintCounter();
                            }
                            else
                            {
                                DisplayMessage(MessageManager.msg_FP_FailedToAddTemplate, false);
                            }
                        }
                        else
                        {
                            DisplayMessage(MessageManager.msg_FP_UnableToEnrollCurrentUser + ret, false);
                        }

                        IsRegister = false;
                        return;
                    }
                    else
                    {
                        int remainingCont = REGISTER_FINGER_COUNT - RegisterCount;
                        lblFingerPrintCount.Text = remainingCont.ToString();
                        string message = "Please provide your fingerprint " + remainingCont + " more time(s)";

                        DisplayMessage(message, true);
                    }
                    #endregion
                }
                else if (!bIdentify2 || !bIdentify)
                {
                    #region ------- IF RANDOM FINGERPRINT -------
                    // If unidentified random fingerprint is applied

                    //if (regTempLen <= 0)
                    //{
                    //    DisplayMessage(MessageManager.msg_FP_UnidentifiedFingerPrint, false);
                    //    return;
                    //}


                    if ((bIdentify && userType == 1) || (bIdentify2 && userType == 2))
                    {
                        int ret = zkfp.ZKFP_ERR_OK;
                        int fid = 0, score = 0;
                        ret = fpInstance.Identify(CapTmp, ref fid, ref score);

                        //check if
                        if (zkfp.ZKFP_ERR_OK == ret)
                        {
                            DisplayMessage(MessageManager.msg_FP_IdentificationSuccess + ret, true);
                            return;
                        }
                        else
                        {
                            DisplayMessage(MessageManager.msg_FP_IdentificationFailed + ret, false);
                            return;
                        }
                    }
                    else
                    {
                        ExAttDBRepo eR = new ExAttDBRepo();
                        ExUniDBRepo eU = new ExUniDBRepo();

                        var allFingers = eR.GetAllFingers();

                        if (userType == 1)
                        {
                            var x = eU.GetAllStudents().Select(e => e.Stu_ID).ToList();
                            allFingers = allFingers.Where(e => x.Contains(e.Uni_ID)).ToList();
                        }

                        else if (userType == 2)
                        {
                            var x = eU.GetAllEmployees().Select(e => e.Emp_ID).ToList();
                            allFingers = allFingers.Where(e => x.Contains(e.Uni_ID)).ToList();
                        }



                        Finger selectedStudent = new Finger();
                        foreach (var item in allFingers.ToList())
                        {
                            var base46Registerd = zkfp.Base64String2Blob(item.FingerTemplate);
                            var r = fpInstance.Match(CapTmp, base46Registerd);
                            if (r > 0)
                            {
                                selectedStudent = item;
                                bool checkIsSavedthroughOneHour = eR.CheckIsSavedthroughOneHour(selectedStudent.Uni_ID, userType);
                                if (!checkIsSavedthroughOneHour)
                                {
                                    eR.inserAttendanceLogToDB(selectedStudent.Uni_ID);
                                }
                                break;
                            }
                        }
                        //if id for student match the his fingerprint then show message
                        if (selectedStudent.Uni_ID > 0)
                        {
                            DisplayMessage(MessageManager.msg_FP_MatchSuccess + selectedStudent.Uni_ID, true);
                            return;
                        }
                        //if the match is failed then show error message
                        else
                        {
                            DisplayMessage(MessageManager.msg_FP_MatchFailed /*+ ret*/, false);
                            return;
                        }
                    }
                    #endregion
                }
            }
            break;

            default:
                base.DefWndProc(ref m);
                break;
            }
        }