using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using AdminDAL.CustomCode.Exchange; using AdminDAL.DTO.Currency; using GB5Shared.DTO.Framework.AutoNumber; using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using GB5Shared.GenerateAutoNumber; using GB5Shared.ResponseStandard; namespace AdminBLL.Exchange { public class ExchangeBLL : IExchangeBLL { private readonly IExchangeDAL _ExchangeDAL; private readonly AutoNumber _AutoNumber; public ExchangeBLL(IExchangeDAL IExchangeDAL, AutoNumber AutoNumber) { _ExchangeDAL = IExchangeDAL; _AutoNumber = AutoNumber; } public async Task GetExchange(int ExchangeId, LoginDTO LoginDTO) { try { return await _ExchangeDAL.GetExchange(ExchangeId, LoginDTO); } catch (Exception) { throw; } } public async Task SaveExchange(ExchangeDTO ExchangeDTO, LoginDTO LoginDTO) { try { int initialId = ExchangeDTO.ExchangeId; int count = 1 + initialId; if (initialId == 0) { AutoNumberDTO autoNumberDTO = await _AutoNumber.GetNumberAsync(count, "EXCHANGE", LoginDTO); ExchangeDTO.ExchangeId = autoNumberDTO.StartNumber; await _ExchangeDAL.SaveExchange(ExchangeDTO, LoginDTO); return $"Details Saved Successfully with ExchangeId {ExchangeDTO.ExchangeId}"; } else { await _ExchangeDAL.UpdateExchange(ExchangeDTO, LoginDTO); return $"Details Updated Successfully with ExchangeId {ExchangeDTO.ExchangeId}"; } } catch (Exception) { throw; } } public async Task DeleteExchange(int ExchangeId, LoginDTO LoginDTO) { try { return await _ExchangeDAL.DeleteExchange(ExchangeId, LoginDTO); } catch (Exception) { throw; } } public async Task GetSelectListCurrencyDetails(CriteriaDTO criteriaDTO, LoginDTO loginDTO) { try { return await _ExchangeDAL.GetSelectListCurrencyDetails(criteriaDTO, loginDTO); } catch (Exception) { throw; } } } }