using FrameworkDAL.Query.ActionProcessor; using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; using System.Threading; using System.Threading.Tasks; namespace FrameworkDAL.CustomCode.ActionProcessor { public interface IProcessedActionDAL { Task ExistsAsync(int actionRunId, LoginDTO login, CancellationToken ct = default); Task InsertAsync(int actionRunId, LoginDTO login, CancellationToken ct = default); } public sealed class ProcessedActionDAL : IProcessedActionDAL { private readonly IQueryExecutor _qe; public ProcessedActionDAL(IQueryExecutor qe) => _qe = qe; public async Task ExistsAsync(int actionRunId, LoginDTO login, CancellationToken ct = default) { var count = await _qe.ExecuteScalarAsync( login, ProcessedActionQB.CHECK_EXISTS, new { ActionRunId = actionRunId }, cancellationToken: ct).ConfigureAwait(false); return count > 0; } public async Task InsertAsync(int actionRunId, LoginDTO login, CancellationToken ct = default) { await _qe.ExecuteAsync( login, ProcessedActionQB.INSERT, new { ActionRunId = actionRunId, CreatedById = login.UserId }, cancellationToken: ct).ConfigureAwait(false); } } }