using EnablementDAL.DTO; using EnablementDAL.Query.Show; using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; namespace EnablementDAL.CustomCode.ShowChannelSubscription; public class ShowChannelSubscriptionDAL : IShowChannelSubscriptionDAL { private readonly IQueryExecutor _qe; public ShowChannelSubscriptionDAL(IQueryExecutor qe) => _qe = qe; public async Task> GetActiveChannelsAsync(LoginDTO login, CancellationToken ct) => await _qe.QueryAsync( login, ShowChannelSubscriptionQB.GET_ACTIVE_CHANNELS, new { TenantId = login.ClientId }, cancellationToken: ct).ConfigureAwait(false); public async Task> GetMyOverridesAsync(LoginDTO login, CancellationToken ct) => await _qe.QueryAsync( login, ShowChannelSubscriptionQB.GET_MY_OVERRIDES, new { UserId = login.UserId, TenantId = login.ClientId }, cancellationToken: ct).ConfigureAwait(false); public async Task GetOverrideAsync(int channelId, int userId, LoginDTO login, CancellationToken ct) { var results = await _qe.QueryAsync( login, ShowChannelSubscriptionQB.GET_MY_OVERRIDE, new { ChannelId = channelId, UserId = userId, TenantId = login.ClientId }, cancellationToken: ct).ConfigureAwait(false); return results.FirstOrDefault(); } public async Task> GetOverridesForChannelAsync(int channelId, LoginDTO login, CancellationToken ct) => await _qe.QueryAsync( login, ShowChannelSubscriptionQB.GET_CHANNEL_OVERRIDES, new { ChannelId = channelId, TenantId = login.ClientId }, cancellationToken: ct).ConfigureAwait(false); public async Task InsertOverrideAsync(ShowChannelSubscriptionDTO dto, LoginDTO login, CancellationToken ct) => await _qe.ExecuteAsync( login, ShowChannelSubscriptionQB.INSERT_OVERRIDE, dto, cancellationToken: ct).ConfigureAwait(false); public async Task UpdateOverrideAsync(ShowChannelSubscriptionDTO dto, LoginDTO login, CancellationToken ct) => await _qe.ExecuteAsync( login, ShowChannelSubscriptionQB.UPDATE_OVERRIDE, dto, cancellationToken: ct).ConfigureAwait(false); }