uind-hikvision-attendance-m.../src/HikvisionAttendanceManager.App/Services/AttendanceMachineRepository.cs

29 lines
1.4 KiB
C#

using MySql.Data.MySqlClient;
namespace HikvisionAttendanceManager.App.Services;
public sealed class AttendanceMachineRepository
{
public async Task<DateTime?> GetLastSyncDateAsync(string machineIp, CancellationToken cancellationToken)
{
await using var connection = HrmsConnectionFactory.CreateConnection();
await connection.OpenAsync(cancellationToken);
await using var command = new MySqlCommand(
"SELECT last_sync_date FROM hrms.attendance_machine WHERE machine_ip=@machine_ip LIMIT 1", connection);
command.Parameters.AddWithValue("@machine_ip", machineIp);
var value = await command.ExecuteScalarAsync(cancellationToken);
return value is null or DBNull ? null : Convert.ToDateTime(value);
}
public async Task UpdateLastSyncDateAsync(string machineIp, DateTime lastSyncDate, CancellationToken cancellationToken)
{
await using var connection = HrmsConnectionFactory.CreateConnection();
await connection.OpenAsync(cancellationToken);
await using var command = new MySqlCommand(
"UPDATE hrms.attendance_machine SET last_sync_date=@last_sync_date WHERE machine_ip=@machine_ip", connection);
command.Parameters.AddWithValue("@last_sync_date", lastSyncDate);
command.Parameters.AddWithValue("@machine_ip", machineIp);
await command.ExecuteNonQueryAsync(cancellationToken);
}
}