using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; using GoodBooks.PAY.PAYDAL.DTO.Cashback; using GoodBooks.PAY.PAYDAL.Query.Cashback; using Newtonsoft.Json; namespace GoodBooks.PAY.PAYDAL.CustomCode.Cashback { public class CashbackRuleDAL : ICashbackRuleDAL { private readonly IQueryExecutor _queryExecutor; public CashbackRuleDAL(IQueryExecutor queryExecutor) { _queryExecutor = queryExecutor; } public async Task GetCashbackRule(int cashbackRuleId, LoginDTO login) { try { var result = await _queryExecutor.QuerySingleAsync( login, CashbackRuleQB.GET_CASHBACK_RULE, new { CashbackRuleId = cashbackRuleId, TenantId = login.ClientId }).ConfigureAwait(false); return JsonConvert.SerializeObject(result); } catch (Exception) { throw; } } public async Task GetCashbackRuleList(LoginDTO login) { try { var result = await _queryExecutor.QueryAsync( login, CashbackRuleQB.GET_CASHBACK_RULE_LIST, new { TenantId = login.ClientId }).ConfigureAwait(false); return JsonConvert.SerializeObject(result); } catch (Exception) { throw; } } public async Task GetActiveRuleForOrder(decimal orderAmt, int payGatewayId, LoginDTO login) { try { var result = await _queryExecutor.QuerySingleAsync( login, CashbackRuleQB.GET_ACTIVE_RULE_FOR_ORDER, new { OrderAmt = orderAmt, PayGatewayId = payGatewayId, TenantId = login.ClientId }).ConfigureAwait(false); return result; } catch (Exception) { throw; } } public async Task SaveCashbackRule(CashbackRuleDTO dto, LoginDTO login) { try { return await _queryExecutor.ExecuteAsync( login, CashbackRuleQB.SAVE_CASHBACK_RULE, dto).ConfigureAwait(false); } catch (Exception) { throw; } } public async Task UpdateCashbackRule(CashbackRuleDTO dto, LoginDTO login) { try { return await _queryExecutor.ExecuteAsync( login, CashbackRuleQB.UPDATE_CASHBACK_RULE, dto).ConfigureAwait(false); } catch (Exception) { throw; } } } }