hikvision-sync-service/Data/Interfaces.cs

46 lines
1.7 KiB
C#

using System;
using System.Collections.Generic;
namespace HikvisionAttendanceService.Data;
internal interface IHrmsDbConnectionFactory
{
string BuildConnectionStringMasked();
bool TryBuildConnectionString(out string connectionString, out string error);
}
internal interface IAttendanceMachineRepository
{
List<AttendanceMachineRow> GetActiveMachines(string? machineTypeFilter, out string error);
void UpdateMachineSyncState(string machineIp, string status, DateTime? lastSyncDate, int? totalUsers, out string error);
bool TryGetMachineLastSyncDate(string machineIp, out DateTime? lastSyncDate, out string error);
bool UpdateMachineLastSyncDate(string machineIp, DateTime lastSyncDate, out string error);
}
internal interface IAttendanceLogRepository
{
bool UpsertAttendance(
string acNo,
DateTime checkTime,
int processed,
string machineId,
int inOutTypeId,
string machineIp,
DateTime dateOnly,
out string error);
}
internal interface IAttendanceMachineUserRepository
{
List<AttendanceMachineUserRow> GetActiveUsersByMachine(string machineId, out string error);
List<AttendanceMachineUserRow> GetPendingDeletionUsersByMachine(string machineId, out string error);
bool UpsertMachineUser(string machineId, string serialNumber, string employeeName, out string error);
bool MarkDeleted(string machineId, string serialNumber, string updatedBy, out string error);
}
internal interface IAttendanceMachineFaceTemplateRepository
{
bool UpsertFaceTemplate(string serialNo, byte[] template, DateTime createdDate, bool isActive, out string error);
bool TryGetActiveFaceTemplateBySerial(string serialNo, out AttendanceMachineFaceTemplateRow? row, out string error);
}