using System.Data.Common; using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; using SwDAL.DTO.DdlObjectHistory; using SwDAL.Query.DdlObjectHistory; namespace SwDAL.CustomCode.DdlObjectHistory; public class DdlObjectHistoryDAL : IDdlObjectHistoryDAL { private readonly IQueryExecutor _QueryExecutor; public DdlObjectHistoryDAL(IQueryExecutor queryExecutor) => _QueryExecutor = queryExecutor; public async Task GetCurrentTip( int dbModelId, string schemaName, string objectName, byte objectType, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct) => await _QueryExecutor.QuerySingleAsync( loginDTO, DdlObjectHistoryQB.GET_CURRENT_TIP, new { DbModelId = dbModelId, SchemaName = schemaName, ObjectName = objectName, ObjectType = objectType, TenantId = loginDTO.ClientId }, tx, cancellationToken: ct) .ConfigureAwait(false); public async Task ClearCurrentTip( int dbModelId, string schemaName, string objectName, byte objectType, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct) => await _QueryExecutor.ExecuteAsync( loginDTO, DdlObjectHistoryQB.CLEAR_CURRENT_TIP, new { DbModelId = dbModelId, SchemaName = schemaName, ObjectName = objectName, ObjectType = objectType, ModifiedById = loginDTO.UserId, ModifiedOn = DateTime.UtcNow, TenantId = loginDTO.ClientId }, tx, cancellationToken: ct) .ConfigureAwait(false); public async Task InsertVersion(DdlObjectHistoryDTO dto, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct) { dto.CreatedById = loginDTO.UserId; dto.CreatedOn = DateTime.UtcNow; dto.ModifiedById = loginDTO.UserId; dto.ModifiedOn = DateTime.UtcNow; dto.TenantId = loginDTO.ClientId; await _QueryExecutor.ExecuteAsync(loginDTO, DdlObjectHistoryQB.INSERT, dto, tx, cancellationToken: ct) .ConfigureAwait(false); } }