using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; using GoodBooks.PAY.PAYDAL.DTO.Gateway; using GoodBooks.PAY.PAYDAL.Query.Gateway; using Newtonsoft.Json; namespace GoodBooks.PAY.PAYDAL.CustomCode.Gateway { public class PayGatewayDAL : IPayGatewayDAL { private readonly IQueryExecutor _QueryExecutor; public PayGatewayDAL(IQueryExecutor queryExecutor) { _QueryExecutor = queryExecutor; } // ── Get single gateway by Id ────────────────────────────────────── // NOTE: No TENANTID filter — MPAYGATEWAY is a DevAdmin platform catalogue. public async Task GetPayGateway(int payGatewayId, LoginDTO loginDTO) { try { var param = new { PayGatewayId = payGatewayId }; var result = await _QueryExecutor.QuerySingleAsync( loginDTO, PayGatewayQB.GET_PAY_GATEWAY, param).ConfigureAwait(false); return JsonConvert.SerializeObject(result); } catch (Exception) { throw; } } // ── Get full active gateway list ────────────────────────────────── // NOTE: No TENANTID filter — platform catalogue, same for all tenants. public async Task GetPayGatewayList(LoginDTO loginDTO) { try { var result = await _QueryExecutor.QueryAsync( loginDTO, PayGatewayQB.GET_PAY_GATEWAY_LIST, null).ConfigureAwait(false); return JsonConvert.SerializeObject(result); } catch (Exception) { throw; } } // ── Picklist / select-list for dropdowns ───────────────────────── // NOTE: No TENANTID filter — platform catalogue. public async Task GetSelectListGateway(LoginDTO loginDTO) { try { var result = await _QueryExecutor.QueryAsync( loginDTO, PayGatewayQB.GET_SELECT_LIST_GATEWAY, null).ConfigureAwait(false); return JsonConvert.SerializeObject(result); } catch (Exception) { throw; } } // ── Insert new gateway record ───────────────────────────────────── public async Task SavePayGateway(PayGatewayDTO dto, LoginDTO loginDTO) { try { int rows = await _QueryExecutor.ExecuteAsync( loginDTO, PayGatewayQB.SAVE_PAY_GATEWAY, dto).ConfigureAwait(false); return rows; } catch (Exception) { throw; } } // ── Update existing gateway record ──────────────────────────────── public async Task UpdatePayGateway(PayGatewayDTO dto, LoginDTO loginDTO) { try { int rows = await _QueryExecutor.ExecuteAsync( loginDTO, PayGatewayQB.UPDATE_PAY_GATEWAY, dto).ConfigureAwait(false); return rows; } catch (Exception) { throw; } } } }