using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; using PartnerDAL.DTO.PartnerSync; using PartnerDAL.Query.PartnerSync; namespace PartnerDAL.CustomCode.PartnerSync { public class PartnerSyncDAL : IPartnerSyncDAL { private readonly IQueryExecutor _queryExecutor; public PartnerSyncDAL(IQueryExecutor queryExecutor) { _queryExecutor = queryExecutor; } public async Task GetDatasetIdByCode(string datasetCode, LoginDTO loginDTO, CancellationToken ct) { try { return await _queryExecutor.ExecuteScalarAsync( loginDTO, PartnerSyncQB.GET_DATASET_ID_BY_CODE, new { DatasetCode = datasetCode }, cancellationToken: ct).ConfigureAwait(false); } catch (Exception) { throw; } } public async Task> GetPartnerProductIds(int partnerId, LoginDTO loginDTO, CancellationToken ct) { try { var result = await _queryExecutor.QueryAsync( loginDTO, PartnerSyncQB.GET_PARTNER_PRODUCT_IDS, new { PartnerId = partnerId }, cancellationToken: ct).ConfigureAwait(false); return result?.ToList() ?? new List(); } catch (Exception) { throw; } } public async Task GetSyncJobIdByDescription(string description, LoginDTO loginDTO, CancellationToken ct) { try { var ids = await _queryExecutor.QueryAsync( loginDTO, PartnerSyncQB.GET_SYNCJOB_BY_DESCRIPTION, new { Description = description }, cancellationToken: ct).ConfigureAwait(false); var list = ids?.ToList(); return list?.Count > 0 ? list[0] : (int?)null; } catch (Exception) { throw; } } public async Task SaveSyncJob(PartnerSyncJobDTO dto, LoginDTO loginDTO, CancellationToken ct) { try { await _queryExecutor.ExecuteAsync( loginDTO, PartnerSyncQB.SAVE_PARTNER_SYNCJOB, dto, cancellationToken: ct).ConfigureAwait(false); } catch (Exception) { throw; } } public async Task UpdateSyncJobProvision(int syncJobId, string queryCondition, int sourceDbInstanceId, int targetDbInstanceId, int modifiedById, LoginDTO loginDTO, CancellationToken ct) { try { await _queryExecutor.ExecuteAsync( loginDTO, PartnerSyncQB.UPDATE_SYNCJOB_PROVISION, new { SyncJobId = syncJobId, QueryCondition = queryCondition, SourceDbInstanceId = sourceDbInstanceId, TargetDbInstanceId = targetDbInstanceId, ModifiedById = modifiedById, ModifiedOn = DateTime.UtcNow }, cancellationToken: ct).ConfigureAwait(false); } catch (Exception) { throw; } } } }