using System.Linq; using System.Threading; using System.Threading.Tasks; using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; using TMSDAL.Query.Promotion; namespace TMSDAL.CustomCode.Promotion { public class TrainingDomainCodeLookupDAL : ITrainingDomainCodeLookupDAL { private readonly IQueryExecutor _qe; public TrainingDomainCodeLookupDAL(IQueryExecutor qe) => _qe = qe; public async Task GetDomainCodeById(int trainingDomainId, LoginDTO login, CancellationToken ct) { var rows = await _qe.QueryAsync(login, TrainingDomainCodeLookupQB.GET_CODE_BY_ID, new { TrainingDomainId = trainingDomainId, TenantId = login.ClientId }, cancellationToken: ct) .ConfigureAwait(false); return rows.FirstOrDefault(); } public async Task GetDomainIdByCode(string domainCode, LoginDTO login, CancellationToken ct) { var rows = await _qe.QueryAsync(login, TrainingDomainCodeLookupQB.GET_ID_BY_CODE, new { DomainCode = domainCode, TenantId = login.ClientId }, cancellationToken: ct) .ConfigureAwait(false); var list = rows.ToList(); return list.Count > 0 ? list[0] : (int?)null; } } }