using AmpDAL.Query.ApiArtifact; using AMPDAL.DTO.ApiArtifact; using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; namespace AmpDAL.CustomCode.ApiArtifact; public class ApiArtifactDAL(IQueryExecutor _qe) : IApiArtifactDAL { public async Task> GetArtifactListAsync(CriteriaDTO criteriaDTO, LoginDTO login, CancellationToken ct) { var result = await _qe.QueryAsync( login, ApiArtifactQB.GET_ARTIFACT_LIST, new { TenantId = login.ClientId }).ConfigureAwait(false); return result.ToList(); } public async Task SaveArtifactAsync(ApiArtifactSaveDTO dto, LoginDTO login, CancellationToken ct) { return await _qe.ExecuteScalarAsync( login, ApiArtifactQB.SAVE_ARTIFACT, new { dto.ApiArtifactId, dto.TenantId, dto.ApiId, dto.ArtifactType, dto.Title, dto.Location, dto.Remarks, dto.SortOrder, dto.Status, dto.Version, dto.SourceType, dto.CreatedById, dto.ModifiedById }).ConfigureAwait(false); } public async Task UpdateArtifactAsync(ApiArtifactSaveDTO dto, LoginDTO login, CancellationToken ct) { return await _qe.ExecuteScalarAsync( login, ApiArtifactQB.UPDATE_ARTIFACT, new { dto.ApiArtifactId, dto.ApiId, dto.ArtifactType, dto.Title, dto.Location, dto.Remarks, dto.SortOrder, dto.Status, dto.Version, dto.ModifiedById }).ConfigureAwait(false); } public async Task GetArtifactAsync(long apiArtifactId, LoginDTO login, CancellationToken ct) => await _qe.QuerySingleAsync( login, ApiArtifactQB.GET_ARTIFACT, new { ApiArtifactId = apiArtifactId, TenantId = login.ClientId }).ConfigureAwait(false); public async Task> GetArtifactSelectListAsync(CriteriaDTO criteriaDTO, LoginDTO login, CancellationToken ct) { var result = await _qe.QueryAsync( login, ApiArtifactQB.GET_ARTIFACT_SELECT_LIST, new { TenantId = login.ClientId }).ConfigureAwait(false); return result.ToList(); } public async Task> GetPagedArtifactList(int firstNumber, int maxResult, LoginDTO login, CancellationToken ct) { var result = await _qe.QueryAsync( login, ApiArtifactQB.GET_ARTIFACT_LIST_PAGED, new { TenantId = login.ClientId, FirstNumber = firstNumber, MaxResult = maxResult }).ConfigureAwait(false); return result.ToList(); } public async Task DeleteById(long apiArtifactId, LoginDTO login, CancellationToken ct) => await _qe.ExecuteAsync( login, ApiArtifactQB.DELETE_ARTIFACT, new { ApiArtifactId = apiArtifactId, TenantId = login.ClientId }).ConfigureAwait(false); }