using EnablementDAL.CustomCode.ShowChannel; using EnablementDAL.DTO; using EnablementDAL.Query.Show; using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; namespace EnablementDAL.Implementations; public class ShowChannelDAL : IShowChannelDAL { private readonly IQueryExecutor _qe; public ShowChannelDAL(IQueryExecutor qe) => _qe = qe; public async Task GetShowChannelAsync(int channelId, LoginDTO login, CancellationToken ct) => await _qe.QuerySingleAsync( login, ShowChannelQB.GET_SHOW_CHANNEL, new { ChannelId = channelId, TenantId = login.ClientId }, cancellationToken: ct).ConfigureAwait(false); public async Task> GetShowChannelListAsync( int pageNo, int pageSize, LoginDTO login, CancellationToken ct) => await _qe.QueryAsync( login, ShowChannelQB.GET_SHOW_CHANNEL_LIST, new { TenantId = login.ClientId, PageNo = pageNo, PageSize = pageSize }, cancellationToken: ct).ConfigureAwait(false); public async Task GetShowChannelListCountAsync(LoginDTO login, CancellationToken ct) => await _qe.ExecuteScalarAsync( login, ShowChannelQB.GET_SHOW_CHANNEL_LIST_COUNT, new { TenantId = login.ClientId }, cancellationToken: ct).ConfigureAwait(false); public async Task InsertShowChannelAsync(ShowChannelDTO dto, LoginDTO login, CancellationToken ct) => await _qe.ExecuteAsync( login, ShowChannelQB.INSERT_SHOW_CHANNEL, dto, cancellationToken: ct).ConfigureAwait(false); public async Task UpdateShowChannelAsync(ShowChannelDTO dto, LoginDTO login, CancellationToken ct) => await _qe.ExecuteAsync( login, ShowChannelQB.UPDATE_SHOW_CHANNEL, dto, cancellationToken: ct).ConfigureAwait(false); public async Task DeleteShowChannelAsync(int channelId, LoginDTO login, CancellationToken ct) => await _qe.ExecuteAsync( login, ShowChannelQB.DELETE_SHOW_CHANNEL, new { ChannelId = channelId, TenantId = login.ClientId, ModifiedById = login.UserId }, cancellationToken: ct).ConfigureAwait(false); public async Task> GetSelectListShowChannelAsync(LoginDTO login, CancellationToken ct) => await _qe.QueryAsync( login, ShowChannelQB.GET_SELECTLIST_SHOW_CHANNEL, new { TenantId = login.ClientId }, cancellationToken: ct).ConfigureAwait(false); public async Task AssignChannelToShowAsync(ShowChannelAssignmentDTO dto, LoginDTO login, CancellationToken ct) => await _qe.ExecuteAsync( login, ShowChannelQB.ASSIGN_CHANNEL_TO_SHOW, dto, cancellationToken: ct).ConfigureAwait(false); public async Task UnassignChannelFromShowAsync(int showId, int channelId, LoginDTO login, CancellationToken ct) => await _qe.ExecuteAsync( login, ShowChannelQB.UNASSIGN_CHANNEL_FROM_SHOW, new { ShowId = showId, ChannelId = channelId, TenantId = login.ClientId }, cancellationToken: ct).ConfigureAwait(false); public async Task> GetChannelsForShowAsync( int showId, LoginDTO login, CancellationToken ct) => await _qe.QueryAsync( login, ShowChannelQB.GET_CHANNELS_FOR_SHOW, new { ShowId = showId, TenantId = login.ClientId }, cancellationToken: ct).ConfigureAwait(false); }