Fix colony attendance
parent
a8837c4a10
commit
fc3823feb8
Binary file not shown.
|
@ -113,10 +113,10 @@ namespace ZktecoAttendenceService
|
||||||
return responses;
|
return responses;
|
||||||
}
|
}
|
||||||
bool Bconnect = false;
|
bool Bconnect = false;
|
||||||
public void DeleteFaceTemplate(AttendanceMachine machine, int Emp_ID, List<string> responses)
|
public void DeleteFaceTemplate(zkemkeeper.CZKEMClass axCZKEM1, AttendanceMachine machine, int Emp_ID, List<string> responses)
|
||||||
{
|
{
|
||||||
Bconnect = axCZKEM1.Connect_Net(machine.MachineIp, machine.PortNumber);
|
//Bconnect = axCZKEM1.Connect_Net(machine.MachineIp, machine.PortNumber);
|
||||||
axCZKEM1.EnableDevice(Convert.ToInt32(machine.MachineId), false);//disable the device
|
//axCZKEM1.EnableDevice(Convert.ToInt32(machine.MachineId), false);//disable the device
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -128,9 +128,9 @@ namespace ZktecoAttendenceService
|
||||||
responses.Add(Emp_ID + " removed from " + machine.MachineId);
|
responses.Add(Emp_ID + " removed from " + machine.MachineId);
|
||||||
MachineOutput = true;
|
MachineOutput = true;
|
||||||
|
|
||||||
axCZKEM1.EnableDevice(Convert.ToInt32(machine.MachineId), true);
|
//axCZKEM1.EnableDevice(Convert.ToInt32(machine.MachineId), true);
|
||||||
|
|
||||||
axCZKEM1.Disconnect();
|
//axCZKEM1.Disconnect();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -148,7 +148,7 @@ namespace ZktecoAttendenceService
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public List<string> DeleteFromDbAndMachine(List<string> objDetail_Final, AttendanceMachine machine, MySqlConnection connection)
|
public List<string> DeleteFromDbAndMachine(zkemkeeper.CZKEMClass cZKEM,List<string> objDetail_Final, AttendanceMachine machine, MySqlConnection connection)
|
||||||
{
|
{
|
||||||
|
|
||||||
List<string> responses = new List<string>();
|
List<string> responses = new List<string>();
|
||||||
|
@ -174,7 +174,7 @@ namespace ZktecoAttendenceService
|
||||||
if (dr["is_deletion_requested"].ToString() == "1")
|
if (dr["is_deletion_requested"].ToString() == "1")
|
||||||
{
|
{
|
||||||
//removing face template
|
//removing face template
|
||||||
DeleteFaceTemplate(machine, Convert.ToInt32(serial_no), responses);
|
DeleteFaceTemplate(cZKEM, machine, Convert.ToInt32(serial_no), responses);
|
||||||
|
|
||||||
//Updating flag in db
|
//Updating flag in db
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ namespace ZktecoAttendenceService
|
||||||
WriteToTxtFile WriteFile_obj = new WriteToTxtFile();
|
WriteToTxtFile WriteFile_obj = new WriteToTxtFile();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public zkemkeeper.CZKEMClass axCZKEM1 = new zkemkeeper.CZKEMClass();
|
public zkemkeeper.CZKEMClass axCZKEM1 = new zkemkeeper.CZKEMClass();
|
||||||
|
|
||||||
|
|
||||||
|
@ -60,102 +60,104 @@ namespace ZktecoAttendenceService
|
||||||
|
|
||||||
Application.Exit();
|
Application.Exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<string> StartPooling()
|
public List<string> StartPooling()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
|
||||||
List<string> responses = new List<string>();
|
|
||||||
AttendanceMachineDAO attendanceMachineDAO = new AttendanceMachineDAO();
|
|
||||||
AttendanceMachineUserDAO attendanceMachineUserDAO = new AttendanceMachineUserDAO();
|
|
||||||
|
|
||||||
using (var connection = ObjConnectionClass.Connection())
|
|
||||||
{
|
{
|
||||||
if (ObjConnectionClass.OpenConnection(connection))
|
|
||||||
|
|
||||||
|
List<string> responses = new List<string>();
|
||||||
|
AttendanceMachineDAO attendanceMachineDAO = new AttendanceMachineDAO();
|
||||||
|
AttendanceMachineUserDAO attendanceMachineUserDAO = new AttendanceMachineUserDAO();
|
||||||
|
|
||||||
|
using (var connection = ObjConnectionClass.Connection())
|
||||||
{
|
{
|
||||||
var machines = attendanceMachineDAO.getAttendanceMachines(connection, "0");
|
if (ObjConnectionClass.OpenConnection(connection))
|
||||||
|
|
||||||
foreach (var machine in machines)
|
|
||||||
{
|
{
|
||||||
|
var machines = attendanceMachineDAO.getAttendanceMachines(connection, "0");
|
||||||
//if (machine.MachineIp == "192.168.52.16")
|
|
||||||
|
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);
|
bool isConnected = axCZKEM1.Connect_Net(machine.MachineIp, Convert.ToInt32(machine.PortNumber));
|
||||||
|
if (isConnected)
|
||||||
if (machine.MachineId != "100")
|
|
||||||
{
|
{
|
||||||
|
axCZKEM1.EnableDevice(Convert.ToInt32(machine.MachineId), false);
|
||||||
|
|
||||||
machine.Status = "SYNCING";
|
if (machine.MachineId != "100")
|
||||||
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<string> newResponses = new List<string>();
|
|
||||||
GetAllFaceInfo(machine);
|
|
||||||
|
|
||||||
attendanceMachineUserDAO.UpdateTotalEmpInMachines(machine.MachineId, empList.Count, connection);
|
|
||||||
|
|
||||||
newResponses = attendanceMachineUserDAO.DeleteFromDbAndMachine(empList, machine, connection);
|
|
||||||
if (newResponses.Count != 0)
|
|
||||||
{
|
{
|
||||||
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<string> newResponses = new List<string>();
|
||||||
|
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<string>();
|
||||||
|
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
|
DateTime now = DateTime.Now.AddMinutes(-5);
|
||||||
//SaveTemplateDb saveTemplateDb = new SaveTemplateDb();
|
machine.LastSyncDate = now;
|
||||||
//saveTemplateDb.InsertFaceIntoDb(machine, connection,axCZKEM1);
|
Console.WriteLine(machine.MachineId + " => " + machine.LastSyncDate);
|
||||||
|
attendanceMachineDAO.updateColony(machine, connection);
|
||||||
empList = new List<string>();
|
axCZKEM1.EnableDevice(Convert.ToInt32(machine.MachineId), true);
|
||||||
axCZKEM1.EnableDevice(Convert.ToInt32(machine.MachineId), true);
|
Cursor = Cursors.Default;
|
||||||
Cursor = Cursors.Default;
|
axCZKEM1.Disconnect();
|
||||||
axCZKEM1.Disconnect();
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
machine.Status = "SYNCING";
|
responses.Add("MACHINE : " + machine.MachineIp + " : NOT CONNECTED");
|
||||||
attendanceMachineDAO.updateColony(machine, connection);
|
machine.Status = "NOT CONNECTED";
|
||||||
responses.AddRange(poolMachineDataColony(machine.MachineIp, machine.PortNumber, Convert.ToInt16(machine.MachineId)));
|
attendanceMachineDAO.update(machine, connection);
|
||||||
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();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
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();
|
Exception ex = new Exception();
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<string> poolMachineDataColony(string ip, int port, int machineId)
|
public List<string> poolMachineDataColony(string ip, int port, int machineId, MySqlConnection connection)
|
||||||
{
|
{
|
||||||
List<string> responses = new List<string>();
|
List<string> responses = new List<string>();
|
||||||
|
|
||||||
|
@ -258,7 +260,7 @@ namespace ZktecoAttendenceService
|
||||||
|
|
||||||
//if(axCZKEM1.ReadGeneralLogData(machineId))
|
//if(axCZKEM1.ReadGeneralLogData(machineId))
|
||||||
|
|
||||||
if(axCZKEM1.ReadAllGLogData(machineId))
|
if (axCZKEM1.ReadAllGLogData(machineId))
|
||||||
|
|
||||||
// Connect and read attendance records
|
// Connect and read attendance records
|
||||||
//if (axCZKEM1.ReadTimeGLogData(machineId, startTimeFormatted, endTimeFormatted)) // read all the attendance records into memory
|
//if (axCZKEM1.ReadTimeGLogData(machineId, startTimeFormatted, endTimeFormatted)) // read all the attendance records into memory
|
||||||
|
@ -273,7 +275,7 @@ namespace ZktecoAttendenceService
|
||||||
// Optionally log the retrieved record
|
// Optionally log the retrieved record
|
||||||
responses.Add($"MACHINE: {ip}, EMP NO: {sdwEnrollNumber}, TIME: {date}");
|
responses.Add($"MACHINE: {ip}, EMP NO: {sdwEnrollNumber}, TIME: {date}");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Perform bulk insert for all records2
|
// Perform bulk insert for all records2
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -288,7 +290,7 @@ namespace ZktecoAttendenceService
|
||||||
{
|
{
|
||||||
responses.Add($"MACHINE: {ip} - No attendance logs found.");
|
responses.Add($"MACHINE: {ip} - No attendance logs found.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
@ -296,16 +298,17 @@ namespace ZktecoAttendenceService
|
||||||
responses.Add($"Error during bulk insert: {ex.Message}");
|
responses.Add($"Error during bulk insert: {ex.Message}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
axCZKEM1.GetLastError(ref errorCode); // Get the last error code
|
axCZKEM1.GetLastError(ref errorCode); // Get the last error code
|
||||||
responses.Add($"MACHINE: {ip} - No data available.");
|
responses.Add($"MACHINE: {ip} - No data available.");
|
||||||
//MessageBox.Show(errorCode.ToString());
|
//MessageBox.Show(errorCode.ToString());
|
||||||
; }
|
;
|
||||||
|
}
|
||||||
|
|
||||||
return responses;
|
return responses;
|
||||||
}
|
}
|
||||||
|
@ -317,26 +320,26 @@ namespace ZktecoAttendenceService
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public List<string> GetAllFaceInfo(AttendanceMachine machine)
|
public List<string> GetAllFaceInfo(zkemkeeper.CZKEMClass axCZKEM1, AttendanceMachine machine)
|
||||||
{
|
{
|
||||||
bool Bconnect = false;
|
bool Bconnect = false;
|
||||||
string sdwEnrollNumber = string.Empty, sName = string.Empty, sPassword = string.Empty;
|
string sdwEnrollNumber = string.Empty, sName = string.Empty, sPassword = string.Empty;
|
||||||
int iPrivilege = 0, iFaceIndex = 0, iFlag = 0, iTmpLength = 0;
|
int iPrivilege = 0, iFaceIndex = 0, iFlag = 0, iTmpLength = 0;
|
||||||
bool bEnabled = false;
|
bool bEnabled = false;
|
||||||
Bconnect = axCZKEM1.Connect_Net(machine.MachineIp, Convert.ToInt32(machine.PortNumber));
|
//Bconnect = axCZKEM1.Connect_Net(machine.MachineIp, Convert.ToInt32(machine.PortNumber));
|
||||||
axCZKEM1.EnableDevice(Convert.ToInt16(machine.MachineId), false);//disable the device
|
//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);
|
empList.Add(sdwEnrollNumber);
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//}
|
||||||
return empList;
|
return empList;
|
||||||
}
|
}
|
||||||
public string GetTotalFromMachine(int MachineID)
|
public string GetTotalFromMachine(int MachineID)
|
||||||
|
|
|
@ -31,6 +31,8 @@ namespace ZktecoAttendenceService
|
||||||
|
|
||||||
List<(string, string,long,long)> empTemplateList = new List<(string, string,long,long)>();
|
List<(string, string,long,long)> empTemplateList = new List<(string, string,long,long)>();
|
||||||
// Get all emp
|
// Get all emp
|
||||||
|
|
||||||
|
|
||||||
while (axCZKEM1.SSR_GetAllUserInfo(machineNo, out empID, out sName, out sPassword, out iPrivilege, out bEnabled))
|
while (axCZKEM1.SSR_GetAllUserInfo(machineNo, out empID, out sName, out sPassword, out iPrivilege, out bEnabled))
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue