using MMDAL.CustomCode.DutyTariff; using MMDAL.DTO.DutyTariff; using GB5Shared.DTO.Framework.AutoNumber; using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using GB5Shared.GenerateAutoNumber; using GB5Shared.Resource.Response; using GB5Shared.Validation; using System; using System.ComponentModel.DataAnnotations; using System.Threading.Tasks; namespace MMBLL.DutyTariff { public class DutyTariffBLL : IDutyTariffBLL { private readonly IDutyTariffDAL _DutyTariffDAL; private readonly AutoNumber _AutoNumber; private readonly IValidation _Validation; public DutyTariffBLL( IDutyTariffDAL DutyTariffDAL, AutoNumber AutoNumber, IValidation Validation) { _DutyTariffDAL = DutyTariffDAL; _AutoNumber = AutoNumber; _Validation = Validation; } public async Task GetDutyTariff(int DutyTariffId, LoginDTO LoginDTO) { try { return await _DutyTariffDAL.GetDutyTariff(DutyTariffId, LoginDTO); } catch (Exception) { throw; } } public async Task SaveDutyTariff(DutyTariffDTO DutyTariffDTO, LoginDTO LoginDTO) { //if (DutyTariffDTO == null) throw new ArgumentNullException(nameof(DutyTariffDTO)); //AutoNumberDTO? autoNumberDTO = null; try { DutyTariffDTO.DutyTariffModifiedById = LoginDTO.UserId; DutyTariffDTO.DutyTariffModifiedOn = DateTime.UtcNow; if (DutyTariffDTO.DutyTariffId == 0) { //autoNumberDTO = await _AutoNumber.GetAutoNumber(count, "DutyTariff", LoginDTO); //DutyTariffDTO.DutyTariffId = autoNumberDTO.StartNumber; DutyTariffDTO.DutyTariffCreatedById = LoginDTO.UserId; DutyTariffDTO.DutyTariffCreatedOn = DateTime.UtcNow; await _DutyTariffDAL.SaveDutyTariff(DutyTariffDTO, LoginDTO); return $"{SuccessResponse.SaveSuccess}"; } else { await _DutyTariffDAL.UpdateDutyTariff(DutyTariffDTO, LoginDTO); return $"{SuccessResponse.UpdateSuccess}"; } } catch (ValidationException vex) { throw new Exception(vex.Message); } catch (Exception) { //if (autoNumberDTO != null && DutyTariffDTO.DutyTariffId > 0) // await _AutoNumber.RollbackAutoNumber("DutyTariff", DutyTariffDTO.DutyTariffId, LoginDTO); throw; } } public async Task GetSelectListDutyTariff( int FirstNumber, int MaxResult, CriteriaDTO CriteriaDTO, LoginDTO LoginDTO) { try { return await _DutyTariffDAL.GetSelectListDutyTariff( FirstNumber, MaxResult, CriteriaDTO, LoginDTO); } catch (Exception) { throw; } } public async Task DeleteDutyTariff(int DutyTariffId, LoginDTO LoginDTO) { try { return await _DutyTariffDAL.DeleteDutyTariff(DutyTariffId, LoginDTO); } catch (Exception) { throw; } } public async Task GetDutyTariffList(CriteriaDTO CriteriaDTO, LoginDTO LoginDTO) { try { return await _DutyTariffDAL.GetDutyTariffList(CriteriaDTO, LoginDTO); } catch (Exception) { throw; } } } }