using AutomationDAL.DTO.Script; using AutomationDAL.Query.Script; using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; namespace AutomationDAL.CustomCode.Script; public class ScriptDAL : IScriptDAL { private readonly IQueryExecutor _qe; public ScriptDAL(IQueryExecutor qe) => _qe = qe; public async Task GetById(int scriptId, LoginDTO login, CancellationToken ct) { var rows = await _qe.QueryAsync(login, ScriptQB.GET_BY_ID, new { ScriptId = scriptId, TenantId = login.ClientId }, cancellationToken: ct).ConfigureAwait(false); return rows.FirstOrDefault(); } public async Task> GetCatalog(string? category, string? searchText, LoginDTO login, CancellationToken ct) => await _qe.QueryAsync(login, ScriptQB.GET_CATALOG, new { TenantId = login.ClientId, Category = category, SearchText = searchText }, cancellationToken: ct).ConfigureAwait(false); public async Task Insert(ScriptDTO dto, LoginDTO login, CancellationToken ct) => await _qe.ExecuteIdentityAsync(login, ScriptQB.INSERT, new { dto.ScriptName, dto.Description, dto.Category, dto.RuntimeType, dto.Criticality, dto.OwnerUserId, TenantId = login.ClientId, CreatedById = login.UserId }).ConfigureAwait(false); public async Task Update(ScriptDTO dto, LoginDTO login, CancellationToken ct) => await _qe.ExecuteAsync(login, ScriptQB.UPDATE, new { dto.ScriptId, dto.ScriptName, dto.Description, dto.Category, dto.RuntimeType, dto.Criticality, dto.OwnerUserId, dto.IsActive, TenantId = login.ClientId, ModifiedById = login.UserId }, cancellationToken: ct).ConfigureAwait(false); }