diff --git a/.vs/DevicePolling/v16/.suo b/.vs/DevicePolling/v16/.suo index dad6bf6..591ef0d 100644 Binary files a/.vs/DevicePolling/v16/.suo and b/.vs/DevicePolling/v16/.suo differ diff --git a/DevicePolling/MachineUsers/AttendanceMachineUserDAO.cs b/DevicePolling/MachineUsers/AttendanceMachineUserDAO.cs index 93f0bfe..7563709 100644 --- a/DevicePolling/MachineUsers/AttendanceMachineUserDAO.cs +++ b/DevicePolling/MachineUsers/AttendanceMachineUserDAO.cs @@ -113,10 +113,10 @@ namespace ZktecoAttendenceService return responses; } bool Bconnect = false; - public void DeleteFaceTemplate(AttendanceMachine machine, int Emp_ID, List responses) + public void DeleteFaceTemplate(zkemkeeper.CZKEMClass axCZKEM1, AttendanceMachine machine, int Emp_ID, List responses) { - Bconnect = axCZKEM1.Connect_Net(machine.MachineIp, machine.PortNumber); - axCZKEM1.EnableDevice(Convert.ToInt32(machine.MachineId), false);//disable the device + //Bconnect = axCZKEM1.Connect_Net(machine.MachineIp, machine.PortNumber); + //axCZKEM1.EnableDevice(Convert.ToInt32(machine.MachineId), false);//disable the device try { @@ -128,9 +128,9 @@ namespace ZktecoAttendenceService responses.Add(Emp_ID + " removed from " + machine.MachineId); MachineOutput = true; - axCZKEM1.EnableDevice(Convert.ToInt32(machine.MachineId), true); + //axCZKEM1.EnableDevice(Convert.ToInt32(machine.MachineId), true); - axCZKEM1.Disconnect(); + //axCZKEM1.Disconnect(); } else { @@ -148,7 +148,7 @@ namespace ZktecoAttendenceService - public List DeleteFromDbAndMachine(List objDetail_Final, AttendanceMachine machine, MySqlConnection connection) + public List DeleteFromDbAndMachine(zkemkeeper.CZKEMClass cZKEM,List objDetail_Final, AttendanceMachine machine, MySqlConnection connection) { List responses = new List(); @@ -174,7 +174,7 @@ namespace ZktecoAttendenceService if (dr["is_deletion_requested"].ToString() == "1") { //removing face template - DeleteFaceTemplate(machine, Convert.ToInt32(serial_no), responses); + DeleteFaceTemplate(cZKEM, machine, Convert.ToInt32(serial_no), responses); //Updating flag in db diff --git a/DevicePolling/Polling.cs b/DevicePolling/Polling.cs index 2d39b16..82ce909 100644 --- a/DevicePolling/Polling.cs +++ b/DevicePolling/Polling.cs @@ -25,7 +25,7 @@ namespace ZktecoAttendenceService WriteToTxtFile WriteFile_obj = new WriteToTxtFile(); - + public zkemkeeper.CZKEMClass axCZKEM1 = new zkemkeeper.CZKEMClass(); @@ -60,102 +60,104 @@ namespace ZktecoAttendenceService Application.Exit(); } - + public List StartPooling() { try - { - List responses = new List(); - AttendanceMachineDAO attendanceMachineDAO = new AttendanceMachineDAO(); - AttendanceMachineUserDAO attendanceMachineUserDAO = new AttendanceMachineUserDAO(); - - using (var connection = ObjConnectionClass.Connection()) { - if (ObjConnectionClass.OpenConnection(connection)) + + + List responses = new List(); + AttendanceMachineDAO attendanceMachineDAO = new AttendanceMachineDAO(); + AttendanceMachineUserDAO attendanceMachineUserDAO = new AttendanceMachineUserDAO(); + + using (var connection = ObjConnectionClass.Connection()) { - var machines = attendanceMachineDAO.getAttendanceMachines(connection, "0"); - - foreach (var machine in machines) + if (ObjConnectionClass.OpenConnection(connection)) { - - //if (machine.MachineIp == "192.168.52.16") + var machines = attendanceMachineDAO.getAttendanceMachines(connection, "0"); + + foreach (var machine in machines) { - bool isConnected = axCZKEM1.Connect_Net(machine.MachineIp, Convert.ToInt32(machine.PortNumber)); - if (isConnected) + + //if (machine.MachineIp == "192.168.50.8") { - axCZKEM1.EnableDevice(Convert.ToInt32(machine.MachineId), false); - - if (machine.MachineId != "100") + bool isConnected = axCZKEM1.Connect_Net(machine.MachineIp, Convert.ToInt32(machine.PortNumber)); + if (isConnected) { + axCZKEM1.EnableDevice(Convert.ToInt32(machine.MachineId), false); - machine.Status = "SYNCING"; - attendanceMachineDAO.update(machine, connection); - - responses.AddRange(poolMachineData(machine.MachineIp, machine.PortNumber, Convert.ToInt16(machine.MachineId), connection)); - machine.Status = "IDLE"; - - DateTime now = DateTime.Now.AddMinutes(-5); - machine.LastSyncDate = now; - Console.WriteLine(machine.MachineId + " => " + machine.LastSyncDate); - attendanceMachineDAO.update(machine, connection); - - List newResponses = new List(); - GetAllFaceInfo(machine); - - attendanceMachineUserDAO.UpdateTotalEmpInMachines(machine.MachineId, empList.Count, connection); - - newResponses = attendanceMachineUserDAO.DeleteFromDbAndMachine(empList, machine, connection); - if (newResponses.Count != 0) + if (machine.MachineId != "100") { - responses.AddRange(newResponses); + + machine.Status = "SYNCING"; + attendanceMachineDAO.update(machine, connection); + + responses.AddRange(poolMachineData(machine.MachineIp, machine.PortNumber, Convert.ToInt16(machine.MachineId), connection)); + machine.Status = "IDLE"; + + DateTime now = DateTime.Now.AddMinutes(-5); + machine.LastSyncDate = now; + Console.WriteLine(machine.MachineId + " => " + machine.LastSyncDate); + attendanceMachineDAO.update(machine, connection); + + List newResponses = new List(); + GetAllFaceInfo(axCZKEM1, machine); + + attendanceMachineUserDAO.UpdateTotalEmpInMachines(machine.MachineId, empList.Count, connection); + + newResponses = attendanceMachineUserDAO.DeleteFromDbAndMachine(axCZKEM1, empList, machine, connection); + if (newResponses.Count != 0) + { + responses.AddRange(newResponses); + } + + //Saving the templates to the database + //SaveTemplateDb saveTemplateDb = new SaveTemplateDb(); + //saveTemplateDb.InsertFaceIntoDb(machine, connection, axCZKEM1); + + empList = new List(); + axCZKEM1.EnableDevice(Convert.ToInt32(machine.MachineId), true); + Cursor = Cursors.Default; + axCZKEM1.Disconnect(); } + else + { + machine.Status = "SYNCING"; + attendanceMachineDAO.updateColony(machine, connection); + responses.AddRange(poolMachineDataColony(machine.MachineIp, machine.PortNumber, Convert.ToInt16(machine.MachineId),connection)); + machine.Status = "IDLE"; - //Saving the templates to the database - //SaveTemplateDb saveTemplateDb = new SaveTemplateDb(); - //saveTemplateDb.InsertFaceIntoDb(machine, connection,axCZKEM1); - - empList = new List(); - axCZKEM1.EnableDevice(Convert.ToInt32(machine.MachineId), true); - Cursor = Cursors.Default; - axCZKEM1.Disconnect(); + DateTime now = DateTime.Now.AddMinutes(-5); + machine.LastSyncDate = now; + Console.WriteLine(machine.MachineId + " => " + machine.LastSyncDate); + attendanceMachineDAO.updateColony(machine, connection); + axCZKEM1.EnableDevice(Convert.ToInt32(machine.MachineId), true); + Cursor = Cursors.Default; + axCZKEM1.Disconnect(); + } } else { - machine.Status = "SYNCING"; - attendanceMachineDAO.updateColony(machine, connection); - responses.AddRange(poolMachineDataColony(machine.MachineIp, machine.PortNumber, Convert.ToInt16(machine.MachineId))); - machine.Status = "IDLE"; - - DateTime now = DateTime.Now.AddMinutes(-5); - machine.LastSyncDate = now; - Console.WriteLine(machine.MachineId + " => " + machine.LastSyncDate); - attendanceMachineDAO.updateColony(machine, connection); - axCZKEM1.EnableDevice(Convert.ToInt32(machine.MachineId), true); - Cursor = Cursors.Default; - axCZKEM1.Disconnect(); + responses.Add("MACHINE : " + machine.MachineIp + " : NOT CONNECTED"); + machine.Status = "NOT CONNECTED"; + attendanceMachineDAO.update(machine, connection); } } - else - { - responses.Add("MACHINE : " + machine.MachineIp + " : NOT CONNECTED"); - machine.Status = "NOT CONNECTED"; - attendanceMachineDAO.update(machine, connection); - } } } } - } - return responses; + return responses; } - catch + catch { Exception ex = new Exception(); - return null; + return null; } } - public List poolMachineDataColony(string ip, int port, int machineId) + public List poolMachineDataColony(string ip, int port, int machineId, MySqlConnection connection) { List responses = new List(); @@ -258,7 +260,7 @@ namespace ZktecoAttendenceService //if(axCZKEM1.ReadGeneralLogData(machineId)) - if(axCZKEM1.ReadAllGLogData(machineId)) + if (axCZKEM1.ReadAllGLogData(machineId)) // Connect and read attendance records //if (axCZKEM1.ReadTimeGLogData(machineId, startTimeFormatted, endTimeFormatted)) // read all the attendance records into memory @@ -273,7 +275,7 @@ namespace ZktecoAttendenceService // Optionally log the retrieved record responses.Add($"MACHINE: {ip}, EMP NO: {sdwEnrollNumber}, TIME: {date}"); } - + // Perform bulk insert for all records2 try { @@ -288,7 +290,7 @@ namespace ZktecoAttendenceService { responses.Add($"MACHINE: {ip} - No attendance logs found."); } - + } catch (Exception ex) @@ -296,16 +298,17 @@ namespace ZktecoAttendenceService responses.Add($"Error during bulk insert: {ex.Message}"); } - - + + } else { axCZKEM1.GetLastError(ref errorCode); // Get the last error code responses.Add($"MACHINE: {ip} - No data available."); //MessageBox.Show(errorCode.ToString()); -; } + ; + } return responses; } @@ -317,26 +320,26 @@ namespace ZktecoAttendenceService } - public List GetAllFaceInfo(AttendanceMachine machine) + public List GetAllFaceInfo(zkemkeeper.CZKEMClass axCZKEM1, AttendanceMachine machine) { bool Bconnect = false; string sdwEnrollNumber = string.Empty, sName = string.Empty, sPassword = string.Empty; int iPrivilege = 0, iFaceIndex = 0, iFlag = 0, iTmpLength = 0; bool bEnabled = false; - Bconnect = axCZKEM1.Connect_Net(machine.MachineIp, Convert.ToInt32(machine.PortNumber)); - axCZKEM1.EnableDevice(Convert.ToInt16(machine.MachineId), false);//disable the device + //Bconnect = axCZKEM1.Connect_Net(machine.MachineIp, Convert.ToInt32(machine.PortNumber)); + //axCZKEM1.EnableDevice(Convert.ToInt16(machine.MachineId), false);//disable the device - if (Bconnect == true) + //if (Bconnect == true) + //{ + //objZkeeper.ReadAllUserID(machineNumber); + axCZKEM1.ReadAllTemplate(Convert.ToInt16(machine.MachineId)); + while (axCZKEM1.SSR_GetAllUserInfo(Convert.ToInt16(machine.MachineId), out sdwEnrollNumber, out sName, out sPassword, out iPrivilege, out bEnabled)) { - //objZkeeper.ReadAllUserID(machineNumber); - axCZKEM1.ReadAllTemplate(Convert.ToInt16(machine.MachineId)); - while (axCZKEM1.SSR_GetAllUserInfo(Convert.ToInt16(machine.MachineId), out sdwEnrollNumber, out sName, out sPassword, out iPrivilege, out bEnabled)) - { - empList.Add(sdwEnrollNumber); - } - + empList.Add(sdwEnrollNumber); } + + //} return empList; } public string GetTotalFromMachine(int MachineID) diff --git a/DevicePolling/SaveTemplate/SaveTemplateDb.cs b/DevicePolling/SaveTemplate/SaveTemplateDb.cs index 3fdcd31..b85a439 100644 --- a/DevicePolling/SaveTemplate/SaveTemplateDb.cs +++ b/DevicePolling/SaveTemplate/SaveTemplateDb.cs @@ -31,6 +31,8 @@ namespace ZktecoAttendenceService List<(string, string,long,long)> empTemplateList = new List<(string, string,long,long)>(); // Get all emp + + while (axCZKEM1.SSR_GetAllUserInfo(machineNo, out empID, out sName, out sPassword, out iPrivilege, out bEnabled)) { { diff --git a/DevicePolling/bin/Debug/DevicePolling.exe b/DevicePolling/bin/Debug/DevicePolling.exe index 0476703..055cf74 100644 Binary files a/DevicePolling/bin/Debug/DevicePolling.exe and b/DevicePolling/bin/Debug/DevicePolling.exe differ diff --git a/DevicePolling/bin/Debug/DevicePolling.pdb b/DevicePolling/bin/Debug/DevicePolling.pdb index dcd49d3..0462ed0 100644 Binary files a/DevicePolling/bin/Debug/DevicePolling.pdb and b/DevicePolling/bin/Debug/DevicePolling.pdb differ diff --git a/DevicePolling/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/DevicePolling/obj/Debug/DesignTimeResolveAssemblyReferences.cache index e84a4b7..78eb585 100644 Binary files a/DevicePolling/obj/Debug/DesignTimeResolveAssemblyReferences.cache and b/DevicePolling/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ diff --git a/DevicePolling/obj/Debug/DevicePolling.exe b/DevicePolling/obj/Debug/DevicePolling.exe index 0476703..055cf74 100644 Binary files a/DevicePolling/obj/Debug/DevicePolling.exe and b/DevicePolling/obj/Debug/DevicePolling.exe differ diff --git a/DevicePolling/obj/Debug/DevicePolling.pdb b/DevicePolling/obj/Debug/DevicePolling.pdb index dcd49d3..0462ed0 100644 Binary files a/DevicePolling/obj/Debug/DevicePolling.pdb and b/DevicePolling/obj/Debug/DevicePolling.pdb differ diff --git a/DevicePolling/obj/Debug/ZktecoAttendenceService.csproj.AssemblyReference.cache b/DevicePolling/obj/Debug/ZktecoAttendenceService.csproj.AssemblyReference.cache index caf002c..5bc59b2 100644 Binary files a/DevicePolling/obj/Debug/ZktecoAttendenceService.csproj.AssemblyReference.cache and b/DevicePolling/obj/Debug/ZktecoAttendenceService.csproj.AssemblyReference.cache differ