feat: detect active registered machine users for skip logic
Active serial lookup used before device enrollment.main
parent
b9f2216207
commit
2719e53338
|
|
@ -122,6 +122,61 @@ namespace HanvonF710XAttendanceService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// True when attendance_machine_user has an active row for this machine + device serial.
|
||||||
|
/// </summary>
|
||||||
|
public bool IsActiveRegistered(MySqlConnection connection, string machineId, string serialNumber)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrWhiteSpace(machineId) || string.IsNullOrWhiteSpace(serialNumber))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
const string query =
|
||||||
|
"SELECT 1 FROM hrms.attendance_machine_user " +
|
||||||
|
"WHERE machine_id = @MachineId AND serial_number = @SerialNumber AND is_deleted = 0 LIMIT 1";
|
||||||
|
using (var cmd = new MySqlCommand(query, connection))
|
||||||
|
{
|
||||||
|
cmd.CommandTimeout = 60;
|
||||||
|
cmd.Parameters.AddWithValue("@MachineId", machineId);
|
||||||
|
cmd.Parameters.AddWithValue("@SerialNumber", serialNumber.Trim());
|
||||||
|
var result = cmd.ExecuteScalar();
|
||||||
|
return result != null && result != DBNull.Value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public HashSet<string> GetActiveSerialNumbersForMachine(MySqlConnection connection, string machineId)
|
||||||
|
{
|
||||||
|
var serials = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
|
||||||
|
if (string.IsNullOrWhiteSpace(machineId))
|
||||||
|
{
|
||||||
|
return serials;
|
||||||
|
}
|
||||||
|
|
||||||
|
const string query =
|
||||||
|
"SELECT serial_number FROM hrms.attendance_machine_user " +
|
||||||
|
"WHERE machine_id = @MachineId AND is_deleted = 0";
|
||||||
|
using (var cmd = new MySqlCommand(query, connection))
|
||||||
|
{
|
||||||
|
cmd.CommandTimeout = 120;
|
||||||
|
cmd.Parameters.AddWithValue("@MachineId", machineId);
|
||||||
|
using (var reader = cmd.ExecuteReader())
|
||||||
|
{
|
||||||
|
while (reader.Read())
|
||||||
|
{
|
||||||
|
if (reader.IsDBNull(0)) continue;
|
||||||
|
var s = reader.GetString(0)?.Trim();
|
||||||
|
if (!string.IsNullOrWhiteSpace(s))
|
||||||
|
{
|
||||||
|
serials.Add(s);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return serials;
|
||||||
|
}
|
||||||
|
|
||||||
private List<AttendanceMachineUser> getDBUsers(MySqlDataReader reader)
|
private List<AttendanceMachineUser> getDBUsers(MySqlDataReader reader)
|
||||||
{
|
{
|
||||||
List<AttendanceMachineUser> DbUsers = new List<AttendanceMachineUser>();
|
List<AttendanceMachineUser> DbUsers = new List<AttendanceMachineUser>();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue