using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; using GB5Shared.Validation; using Newtonsoft.Json; using TMSDAL.DTO.TrainingAttendance; using TMSDAL.Query.TrainingAttendance; namespace TMSDAL.CustomCode.TrainingAttendance { public class TrainingAttendanceDAL : ITrainingAttendanceDAL { private readonly IQueryExecutor _QueryExecutor; private readonly IValidation _Validation; public TrainingAttendanceDAL(IQueryExecutor queryExecutor, IValidation validation) { _QueryExecutor = queryExecutor; _Validation = validation; } public async Task GetSessionAttendance(int instanceSessionId, LoginDTO loginDTO) { try { var parameters = new { InstanceSessionId = instanceSessionId, TenantId = loginDTO.ClientId }; var result = await _QueryExecutor.QueryAsync(loginDTO, TrainingAttendanceQB.GET_SESSION_ATTENDANCE, parameters); return JsonConvert.SerializeObject(result); } catch (Exception) { throw; } } public async Task GetTrainingAttendanceList(LoginDTO loginDTO) { try { var parameters = new { TenantId = loginDTO.ClientId }; var result = await _QueryExecutor.QueryAsync(loginDTO, TrainingAttendanceQB.GET_ATTENDANCE_LIST, parameters); return JsonConvert.SerializeObject(result); } catch (Exception) { throw; } } public async Task SaveAttendanceBulk(IEnumerable records, LoginDTO loginDTO) => await _QueryExecutor.BulkInsertAsync(loginDTO, TrainingAttendanceQB.BULK_INSERT_ATTENDANCE, records); public async Task DeleteSessionAttendance(int instanceSessionId, LoginDTO loginDTO) { try { var parameters = new { InstanceSessionId = instanceSessionId, TenantId = loginDTO.ClientId }; await _QueryExecutor.ExecuteAsync(loginDTO, TrainingAttendanceQB.DELETE_SESSION_ATTENDANCE, parameters); } catch (Exception) { throw; } } } }