using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; using KmsDAL.DTO.KmConnector; using KmsDAL.Query.KmConnector; using Newtonsoft.Json; namespace KmsDAL.CustomCode.KmConnector { public class KmConnectorDAL : IKmConnectorDAL { private readonly IQueryExecutor _qe; public KmConnectorDAL(IQueryExecutor qe) => _qe = qe; public async Task GetKmConnector(int connectorId, LoginDTO login, CancellationToken ct) { var result = await _qe.QuerySingleAsync( login, KmConnectorQB.GET_KMCONNECTOR, new { ConnectorId = connectorId, TenantId = login.ClientId }, cancellationToken: ct); return JsonConvert.SerializeObject(result); } public async Task GetKmConnectors(int page, int pageSize, LoginDTO login, CancellationToken ct) { var result = await _qe.QueryPagedAsync( login, KmConnectorQB.GET_KMCONNECTORS, new { TenantId = login.ClientId, Offset = (page - 1) * pageSize, PageSize = pageSize }); return JsonConvert.SerializeObject(result); } public async Task GetSelectListKmConnector(LoginDTO login, CancellationToken ct) { var result = await _qe.QueryAsync( login, KmConnectorQB.GET_SELECTLIST_KMCONNECTOR, new { TenantId = login.ClientId }, cancellationToken: ct); return JsonConvert.SerializeObject(result); } public async Task GetKmConnectorCodeCount(string connectorCode, int connectorId, LoginDTO login, CancellationToken ct) => await _qe.ExecuteScalarAsync( login, KmConnectorQB.GET_KMCONNECTOR_CODE_COUNT, new { ConnectorCode = connectorCode, ConnectorId = connectorId, TenantId = login.ClientId }, cancellationToken: ct); public async Task SaveKmConnector(KmConnectorDTO dto, LoginDTO login, CancellationToken ct) => await _qe.ExecuteAsync(login, KmConnectorQB.SAVE_KMCONNECTOR, dto, cancellationToken: ct); public async Task UpdateKmConnector(KmConnectorDTO dto, LoginDTO login, CancellationToken ct) => await _qe.ExecuteAsync(login, KmConnectorQB.UPDATE_KMCONNECTOR, dto, cancellationToken: ct); public async Task DeleteKmConnector(int connectorId, LoginDTO login, CancellationToken ct) => await _qe.ExecuteAsync(login, KmConnectorQB.DELETE_KMCONNECTOR, new { ConnectorId = connectorId, ModifiedById = login.UserId, TenantId = login.ClientId }, cancellationToken: ct); } }