using System.Data.Common; using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; using Newtonsoft.Json; using TMSDAL.DTO.TrainingProgrammeRevision; using TMSDAL.Query.TrainingProgrammeRevision; namespace TMSDAL.CustomCode.TrainingProgrammeRevision { public class TrainingProgrammeRevisionDAL : ITrainingProgrammeRevisionDAL { private readonly IQueryExecutor _QueryExecutor; public TrainingProgrammeRevisionDAL(IQueryExecutor QueryExecutor) { _QueryExecutor = QueryExecutor; } public async Task GetRevisionListByProgramme(int programmeId, LoginDTO loginDTO, CancellationToken ct) { try { var result = await _QueryExecutor.QueryAsync( loginDTO, TrainingProgrammeRevisionQB.GET_REVISION_LIST_BY_PROGRAMME, new { programmeid = programmeId, tenantid = loginDTO.ClientId }, cancellationToken: ct).ConfigureAwait(false); return JsonConvert.SerializeObject(result); } catch (Exception) { throw; } } public async Task GetRevision(int programmeRevisionId, LoginDTO loginDTO, CancellationToken ct) { try { var result = await _QueryExecutor.QuerySingleAsync( loginDTO, TrainingProgrammeRevisionQB.GET_REVISION_BY_ID, new { programmerevisionid = programmeRevisionId, tenantid = loginDTO.ClientId }, cancellationToken: ct).ConfigureAwait(false); return JsonConvert.SerializeObject(result); } catch (Exception) { throw; } } public async Task SaveRevision(TrainingProgrammeRevisionDTO dto, LoginDTO loginDTO, DbTransaction? tx, CancellationToken ct) { try { await _QueryExecutor.ExecuteAsync( loginDTO, TrainingProgrammeRevisionQB.SAVE_REVISION, dto, tx, cancellationToken: ct).ConfigureAwait(false); } catch (Exception) { throw; } } } }