using EnablementDAL.DTO; using EnablementDAL.Query.Show; using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; namespace EnablementDAL.CustomCode.ShowSpaceSubscription; public class ShowSpaceSubscriptionDAL : IShowSpaceSubscriptionDAL { private readonly IQueryExecutor _qe; public ShowSpaceSubscriptionDAL(IQueryExecutor qe) => _qe = qe; public async Task> GetActiveSpacesAsync(LoginDTO login, CancellationToken ct) => await _qe.QueryAsync( login, ShowSpaceSubscriptionQB.GET_ACTIVE_SPACES, new { TenantId = login.ClientId }, cancellationToken: ct).ConfigureAwait(false); public async Task> GetMyOverridesAsync(LoginDTO login, CancellationToken ct) => await _qe.QueryAsync( login, ShowSpaceSubscriptionQB.GET_MY_OVERRIDES, new { UserId = login.UserId, TenantId = login.ClientId }, cancellationToken: ct).ConfigureAwait(false); public async Task GetOverrideAsync(int spaceId, int userId, LoginDTO login, CancellationToken ct) { var results = await _qe.QueryAsync( login, ShowSpaceSubscriptionQB.GET_MY_OVERRIDE, new { SpaceId = spaceId, UserId = userId, TenantId = login.ClientId }, cancellationToken: ct).ConfigureAwait(false); return results.FirstOrDefault(); } public async Task> GetOverridesForSpaceAsync(int spaceId, LoginDTO login, CancellationToken ct) => await _qe.QueryAsync( login, ShowSpaceSubscriptionQB.GET_SPACE_OVERRIDES, new { SpaceId = spaceId, TenantId = login.ClientId }, cancellationToken: ct).ConfigureAwait(false); public async Task InsertOverrideAsync(ShowSpaceSubscriptionDTO dto, LoginDTO login, CancellationToken ct) => await _qe.ExecuteAsync( login, ShowSpaceSubscriptionQB.INSERT_OVERRIDE, dto, cancellationToken: ct).ConfigureAwait(false); public async Task UpdateOverrideAsync(ShowSpaceSubscriptionDTO dto, LoginDTO login, CancellationToken ct) => await _qe.ExecuteAsync( login, ShowSpaceSubscriptionQB.UPDATE_OVERRIDE, dto, cancellationToken: ct).ConfigureAwait(false); }