using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; using KmsDAL.DTO.KmSpace; using KmsDAL.Query.KmSpace; using Newtonsoft.Json; namespace KmsDAL.CustomCode.KmSpace { public class KmSpaceDAL : IKmSpaceDAL { private readonly IQueryExecutor _qe; public KmSpaceDAL(IQueryExecutor qe) => _qe = qe; public async Task GetKmSpace(int spaceId, LoginDTO login, CancellationToken ct) { var result = await _qe.QuerySingleAsync( login, KmSpaceQB.GET_KMSPACE, new { SpaceId = spaceId, TenantId = login.ClientId }, cancellationToken: ct); return JsonConvert.SerializeObject(result); } public async Task GetSelectListKmSpace(LoginDTO login, CancellationToken ct) { var result = await _qe.QueryAsync( login, KmSpaceQB.GET_SELECTLIST_KMSPACE, new { TenantId = login.ClientId }, cancellationToken: ct); return JsonConvert.SerializeObject(result); } public async Task GetKmSpaceCodeCount(string spaceCode, int spaceId, LoginDTO login, CancellationToken ct) => await _qe.ExecuteScalarAsync( login, KmSpaceQB.GET_KMSPACE_CODE_COUNT, new { SpaceCode = spaceCode, SpaceId = spaceId, TenantId = login.ClientId }, cancellationToken: ct); public async Task SaveKmSpace(KmSpaceDTO dto, LoginDTO login, CancellationToken ct) => await _qe.ExecuteAsync(login, KmSpaceQB.SAVE_KMSPACE, dto, cancellationToken: ct); public async Task UpdateKmSpace(KmSpaceDTO dto, LoginDTO login, CancellationToken ct) => await _qe.ExecuteAsync(login, KmSpaceQB.UPDATE_KMSPACE, dto, cancellationToken: ct); public async Task DeleteKmSpace(int spaceId, LoginDTO login, CancellationToken ct) => await _qe.ExecuteAsync(login, KmSpaceQB.DELETE_KMSPACE, new { SpaceId = spaceId, ModifiedById = login.UserId, TenantId = login.ClientId }, cancellationToken: ct); } }