using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; using GB5Shared.ResponseStandard; using Newtonsoft.Json; using FrameworkDAL.DTO.Address; using FrameworkDAL.Query.TRMAddress; using System; using System.Collections.Generic; using System.Threading.Tasks; namespace FrameworkDAL.CustomCode.TRMAddress { public class TRMAddressDAL : ITRMAddressDAL { private readonly IQueryExecutor _queryExecutor; public TRMAddressDAL(IQueryExecutor queryExecutor) { _queryExecutor = queryExecutor; } public async Task GetTRMAddress(int AddressId, string LanguageId, LoginDTO loginDTO) { string json = ""; try { string sql = TRMAddressQB.GET_TRMADDRESS; var parameters = new { addressid = AddressId, languageid = LanguageId }; IEnumerable addressDTOs = await _queryExecutor.QueryAsync(loginDTO, sql, parameters); json = JsonConvert.SerializeObject(addressDTOs); return json; } catch (Exception) { throw; } finally { json = null; } } public async Task SaveTRMAddress(AddressDTO addressDTO, LoginDTO loginDTO) { try { string sql = TRMAddressQB.SAVE_TRMADDRESS; return await _queryExecutor.ExecuteAsync(loginDTO, sql, addressDTO); } catch (Exception ex) { throw new Exception("Error while saving TRM Address", ex); } } public async Task UpdateTRMAddress(AddressDTO addressDTO, LoginDTO loginDTO) { try { string sql = TRMAddressQB.UPDATE_TRMADDRESS; return await _queryExecutor.ExecuteAsync(loginDTO, sql, addressDTO); } catch (Exception ex) { throw new Exception("Error while updating TRM Address", ex); } } public async Task> DeleteTRMAddress(int AddressId, LoginDTO loginDTO) { try { string sql = TRMAddressQB.DELETE_TRMADDRESS; int result = await _queryExecutor.ExecuteAsync(loginDTO, sql, new { ADDRESSID = AddressId }); if (result > 0) { return Result.Success("TRM Address deleted successfully."); } else { return Result.Failure("TRM Address not found or could not be deleted."); } } catch (Exception ex) { throw new Exception("Error while deleting TRM Address", ex); } } } }