using System; using System.Collections.Generic; using System.Data.Common; using System.Threading.Tasks; using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; using GoodBooks.PAY.PAYDAL.DTO.Loyalty; using GoodBooks.PAY.PAYDAL.Query.Loyalty; namespace GoodBooks.PAY.PAYDAL.CustomCode.Loyalty { /// /// DAL implementation for MLOYALTYEARNCFG. /// public class LoyaltyEarnCfgDAL : ILoyaltyEarnCfgDAL { private readonly IQueryExecutor _queryExecutor; public LoyaltyEarnCfgDAL(IQueryExecutor queryExecutor) { _queryExecutor = queryExecutor; } /// public async Task> GetEarnCfgsByProgram(int programId, LoginDTO login) { try { IEnumerable configs = await _queryExecutor.QueryAsync( login, LoyaltyEarnCfgQB.GET_EARN_CFGS_BY_PROGRAM, new { LoyaltyProgramId = programId }).ConfigureAwait(false); return configs ?? Array.Empty(); } catch (Exception) { throw; } } /// public async Task InsertLoyaltyEarnCfg(LoyaltyEarnCfgDTO dto, LoginDTO login, DbTransaction? tx) { try { int rows = await _queryExecutor.ExecuteAsync( login, LoyaltyEarnCfgQB.INSERT_LOYALTY_EARN_CFG, new { dto.LoyaltyEarnCfgId, dto.LoyaltyProgramId, dto.RuleName, dto.RuleType, dto.ReferenceId, dto.EarnPoints, dto.ValidFrom, dto.ValidTo, dto.Remarks, dto.Version, dto.Status, dto.SortOrder, CreatedById = login.UserId, ModifiedById = login.UserId, dto.SourceType, TenantId = login.ClientId }, tx).ConfigureAwait(false); return rows; } catch (Exception) { throw; } } /// public async Task UpdateLoyaltyEarnCfg(LoyaltyEarnCfgDTO dto, LoginDTO login, DbTransaction? tx) { try { int rows = await _queryExecutor.ExecuteAsync( login, LoyaltyEarnCfgQB.UPDATE_LOYALTY_EARN_CFG, new { dto.LoyaltyEarnCfgId, dto.RuleName, dto.RuleType, dto.ReferenceId, dto.EarnPoints, dto.ValidFrom, dto.ValidTo, dto.Remarks, dto.Version, dto.Status, dto.SortOrder, ModifiedById = login.UserId, dto.SourceType, TenantId = login.ClientId }, tx).ConfigureAwait(false); return rows; } catch (Exception) { throw; } } } }