using AmpDAL.DTO.ApiRequestSubscriber; using AMPDAL.Query.ApiRequestSubscriber; using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; namespace AmpDAL.CustomCode.ApiRequestSubscriber; public class ApiRequestSubscriberDAL(IQueryExecutor _qe) : IApiRequestSubscriberDAL { public async Task> GetByRequestAsync(int apiRequestId, int tenantId, LoginDTO login, CancellationToken ct) { var result = await _qe.QueryAsync( login, ApiRequestSubscriberQB.GET_BY_REQUEST, new { ApiRequestId = apiRequestId, TenantId = tenantId }, null, false, ct).ConfigureAwait(false); return result.ToList(); } public async Task> GetByStatusAsync(int apiRequestId, byte notifyOnStatus, int tenantId, LoginDTO login, CancellationToken ct) { var result = await _qe.QueryAsync( login, ApiRequestSubscriberQB.GET_BY_STATUS, new { ApiRequestId = apiRequestId, NotifyOnStatus = notifyOnStatus, TenantId = tenantId }, null, false, ct).ConfigureAwait(false); return result.ToList(); } public async Task SaveSubscriberAsync(ApiRequestSubscriberSaveDTO dto, LoginDTO login, CancellationToken ct) => await _qe.ExecuteScalarAsync( login, ApiRequestSubscriberQB.SAVE_SUBSCRIBER, new { dto.SubscriberId, TenantId = login.ClientId, dto.ApiRequestId, dto.SubscriberUserId, dto.NotifyOnStatus, CreatedById = login.UserId }).ConfigureAwait(false); public async Task DeleteSubscriberAsync(int subscriberId, int apiRequestId, LoginDTO login, CancellationToken ct) => await _qe.ExecuteAsync( login, ApiRequestSubscriberQB.DELETE_SUBSCRIBER, new { SubscriberId = subscriberId, ApiRequestId = apiRequestId, TenantId = login.ClientId }).ConfigureAwait(false); }