using AccountsDAL.DTO.Warehouse; using AccountsDAL.Query.Warehouse; using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; namespace AccountsDAL.CustomCode.Warehouse { public class WarehouseChangeQueueDAL : IWarehouseChangeQueueDAL { private readonly IQueryExecutor _qe; public WarehouseChangeQueueDAL(IQueryExecutor qe) => _qe = qe; public async Task> GetDeltaEnabledFactIdsAsync(LoginDTO login, CancellationToken ct) { var rows = await _qe .QueryAsync(login, WarehouseChangeQueueQB.GET_DELTA_ENABLED_FACTS, cancellationToken: ct) .ConfigureAwait(false); return rows.ToList(); } public async Task EnqueueIfNotPendingAsync( int factId, int ouId, DateTime activityDate, LoginDTO login, CancellationToken ct) { await _qe .ExecuteAsync(login, WarehouseChangeQueueQB.ENQUEUE_IF_NOT_PENDING, new { FactId = factId, OuId = ouId, ActivityDate = activityDate.Date, TenantId = login.ClientId }, cancellationToken: ct) .ConfigureAwait(false); } public async Task> ClaimAndGetPendingAsync( int factId, LoginDTO login, CancellationToken ct) { var rows = await _qe .QueryAsync(login, WarehouseChangeQueueQB.CLAIM_AND_GET_PENDING, new { FactId = factId, TenantId = login.ClientId }, cancellationToken: ct) .ConfigureAwait(false); return rows.ToList(); } } }