using FMDAL.DTO.ScanZone; using FMDAL.Query.ScanZone; using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; using System.Collections.Generic; using System.Data.Common; using System.Linq; using System.Threading; using System.Threading.Tasks; namespace FMDAL.CustomCode.ScanZone { public class ScanZoneDAL : IScanZoneDAL { private readonly IQueryExecutor _qe; public ScanZoneDAL(IQueryExecutor qe) => _qe = qe; public async Task GetScanZone(int scanZoneId, LoginDTO login, CancellationToken ct) { var items = await _qe.QueryAsync(login, ScanZoneQB.GET_SCANZONE, new { ScanZoneId = scanZoneId, TenantId = login.ClientId }, cancellationToken: ct).ConfigureAwait(false); return items.FirstOrDefault(); } public async Task> GetScanZoneList(LoginDTO login, CancellationToken ct) { return await _qe.QueryAsync(login, ScanZoneQB.GET_SCANZONE_LIST, new { TenantId = login.ClientId }, cancellationToken: ct).ConfigureAwait(false); } public async Task SaveScanZone(ScanZoneDTO dto, LoginDTO login, DbTransaction tx, CancellationToken ct) { await _qe.ExecuteAsync(login, ScanZoneQB.SAVE_SCANZONE, dto, tx, cancellationToken: ct).ConfigureAwait(false); } public async Task UpdateScanZone(ScanZoneDTO dto, LoginDTO login, DbTransaction tx, CancellationToken ct) { await _qe.ExecuteAsync(login, ScanZoneQB.UPDATE_SCANZONE, dto, tx, cancellationToken: ct).ConfigureAwait(false); } public async Task DeleteScanZone(int scanZoneId, LoginDTO login, DbTransaction tx, CancellationToken ct) { await _qe.ExecuteAsync(login, ScanZoneQB.DELETE_SCANZONE, new { ScanZoneId = scanZoneId, TenantId = login.ClientId, ModifiedById = login.UserId, ModifiedOn = System.DateTime.UtcNow }, tx, cancellationToken: ct).ConfigureAwait(false); } } }