using AccountsDAL.DTO.Address; using AccountsDAL.Query.Address; using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; using System; using System.Data.Common; using System.Linq; using System.Threading.Tasks; namespace AccountsDAL.CustomCode.Address { public class AddressDAL : IAddressDAL { private readonly IQueryExecutor _QueryExecutor; public AddressDAL(IQueryExecutor QueryExecutor) { _QueryExecutor = QueryExecutor; } public async Task FindAddress(int ObjectTypeId, int ObjectId, LoginDTO loginDTO, DbTransaction? transaction = null) { var parameters = new { ObjectTypeId, ObjectId }; var results = await _QueryExecutor.QueryAsync(loginDTO, AddressQB.GET_ADDRESS_DETAIL, parameters, transaction) .ConfigureAwait(false); return results.FirstOrDefault(); } public async Task SaveAddress(AddressDTO addressDTO, string LanguageId, LoginDTO loginDTO, DbTransaction? transaction = null) { try { return await _QueryExecutor.ExecuteAsync(loginDTO, AddressQB.SAVE_ADDRESS, addressDTO, transaction); } catch (Exception ex) { throw new Exception("Error while saving Address", ex); } } public async Task UpdateAddress(AddressDTO addressDTO, LoginDTO loginDTO, DbTransaction? transaction = null) { try { return await _QueryExecutor.ExecuteAsync(loginDTO, AddressQB.UPDATE_ADDRESS, addressDTO, transaction); } catch (Exception ex) { throw new Exception("Error while updating Address", ex); } } } }