using AutomationDAL.DTO.EventMap; using AutomationDAL.Query.EventMap; using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; namespace AutomationDAL.CustomCode.EventMap; public class EventMapDAL : IEventMapDAL { private readonly IQueryExecutor _qe; public EventMapDAL(IQueryExecutor qe) => _qe = qe; public async Task Resolve(string eventType, int? customerId, LoginDTO login, CancellationToken ct) { var rows = await _qe.QueryAsync(login, EventMapQB.RESOLVE, new { EventType = eventType, CustomerId = customerId, TenantId = login.ClientId }, cancellationToken: ct).ConfigureAwait(false); return rows.FirstOrDefault(); } public async Task> GetByTenant(LoginDTO login, CancellationToken ct) => await _qe.QueryAsync(login, EventMapQB.GET_BY_TENANT, new { TenantId = login.ClientId }, cancellationToken: ct).ConfigureAwait(false); public async Task Insert(EventMapDTO dto, LoginDTO login, CancellationToken ct) => await _qe.ExecuteIdentityAsync(login, EventMapQB.INSERT, new { dto.EventType, dto.CustomerId, dto.Stage, dto.PrecedingStage, dto.TargetId, dto.AckCallbackUrl, TenantId = login.ClientId }).ConfigureAwait(false); public async Task Update(EventMapDTO dto, LoginDTO login, CancellationToken ct) => await _qe.ExecuteAsync(login, EventMapQB.UPDATE, new { dto.MapId, dto.EventType, dto.CustomerId, dto.Stage, dto.PrecedingStage, dto.TargetId, dto.AckCallbackUrl, dto.IsActive, TenantId = login.ClientId }, cancellationToken: ct).ConfigureAwait(false); }