using MMDAL.CustomCode.SizeSet; using MMDAL.DTO.SizeSet; 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.SizeSet { public class SizeSetBLL : ISizeSetBLL { private readonly ISizeSetDAL _SizeSetDAL; private readonly AutoNumber _AutoNumber; private readonly IValidation _Validation; public SizeSetBLL( ISizeSetDAL SizeSetDAL, AutoNumber AutoNumber, IValidation Validation) { _SizeSetDAL = SizeSetDAL; _AutoNumber = AutoNumber; _Validation = Validation; } public async Task GetSizeSet(int SizeSetId, LoginDTO LoginDTO) { try { return await _SizeSetDAL.GetSizeSet(SizeSetId, LoginDTO); } catch (Exception) { throw; } } public async Task SaveSizeSet(SizeSetDTO SizeSetDTO, LoginDTO LoginDTO) { //if (SizeSetDTO == null) throw new ArgumentNullException(nameof(SizeSetDTO)); //AutoNumberDTO? autoNumberDTO = null; try { SizeSetDTO.SizeSetModifiedById = LoginDTO.UserId; SizeSetDTO.SizeSetModifiedOn = DateTime.UtcNow; if (SizeSetDTO.SizeSetId == 0) { //autoNumberDTO = await _AutoNumber.GetAutoNumber(count, "SizeSet", LoginDTO); //SizeSetDTO.SizeSetId = autoNumberDTO.StartNumber; SizeSetDTO.SizeSetCreatedById = LoginDTO.UserId; SizeSetDTO.SizeSetCreatedOn = DateTime.UtcNow; await _SizeSetDAL.SaveSizeSet(SizeSetDTO, LoginDTO); return $"{SuccessResponse.SaveSuccess}"; } else { await _SizeSetDAL.UpdateSizeSet(SizeSetDTO, LoginDTO); return $"{SuccessResponse.UpdateSuccess}"; } } catch (ValidationException vex) { throw new Exception(vex.Message); } catch (Exception) { //if (autoNumberDTO != null && SizeSetDTO.SizeSetId > 0) // await _AutoNumber.RollbackAutoNumber("SizeSet", SizeSetDTO.SizeSetId, LoginDTO); throw; } } public async Task GetSelectListSizeSet( int FirstNumber, int MaxResult, CriteriaDTO CriteriaDTO, LoginDTO LoginDTO) { try { return await _SizeSetDAL.GetSelectListSizeSet( FirstNumber, MaxResult, CriteriaDTO, LoginDTO); } catch (Exception) { throw; } } public async Task DeleteSizeSet(int SizeSetId, LoginDTO LoginDTO) { try { return await _SizeSetDAL.DeleteSizeSet(SizeSetId, LoginDTO); } catch (Exception) { throw; } } public async Task GetSizeSetList(CriteriaDTO CriteriaDTO, LoginDTO LoginDTO) { try { return await _SizeSetDAL.GetSizeSetList(CriteriaDTO, LoginDTO); } catch (Exception) { throw; } } } }