using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; using WiDAL.DTOs; using WiDAL.Query.Wi; namespace WiDAL.CustomCode.WiAnalytics; public class WiAnalyticsDAL : IWiAnalyticsDAL { private readonly IQueryExecutor _qe; public WiAnalyticsDAL(IQueryExecutor qe) => _qe = qe; public async Task> GetExecutionHistoryAsync( int wiId, int workstationId, int employeeId, DateTime fromDate, DateTime toDate, LoginDTO login, CancellationToken ct) { return await _qe.QueryAsync(login, WiAnalyticsQB.GET_EXECUTION_HISTORY, new { TenantId = login.ClientId, WiId = wiId, WorkstationId = workstationId, EmployeeId = employeeId, FromDate = fromDate, ToDate = toDate }, cancellationToken: ct).ConfigureAwait(false); } public async Task> GetTimeStudyAsync( int wiId, DateTime fromDate, DateTime toDate, LoginDTO login, CancellationToken ct) { return await _qe.QueryAsync(login, WiAnalyticsQB.GET_TIME_STUDY, new { TenantId = login.ClientId, WiId = wiId, FromDate = fromDate, ToDate = toDate }, cancellationToken: ct).ConfigureAwait(false); } public async Task> GetComplianceSummaryAsync( int wiId, DateTime fromDate, DateTime toDate, LoginDTO login, CancellationToken ct) { return await _qe.QueryAsync(login, WiAnalyticsQB.GET_COMPLIANCE_SUMMARY, new { TenantId = login.ClientId, WiId = wiId, FromDate = fromDate, ToDate = toDate }, cancellationToken: ct).ConfigureAwait(false); } }