using MMDAL.CustomCode.SKUSetting; using MMDAL.DTO.SKUSetting; 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.SKUSetting { public class SKUSettingBLL : ISKUSettingBLL { private readonly ISKUSettingDAL _SKUSettingDAL; private readonly AutoNumber _AutoNumber; private readonly IValidation _Validation; public SKUSettingBLL( ISKUSettingDAL SKUSettingDAL, AutoNumber AutoNumber, IValidation Validation) { _SKUSettingDAL = SKUSettingDAL; _AutoNumber = AutoNumber; _Validation = Validation; } public async Task GetSKUSetting(int SKUSettingId, LoginDTO LoginDTO) { try { return await _SKUSettingDAL.GetSKUSetting(SKUSettingId, LoginDTO); } catch (Exception) { throw; } } public async Task SaveSKUSetting(SKUSettingDTO SKUSettingDTO, LoginDTO LoginDTO) { //if (SKUSettingDTO == null) throw new ArgumentNullException(nameof(SKUSettingDTO)); //AutoNumberDTO? autoNumberDTO = null; try { SKUSettingDTO.SKUSettingModifiedById = LoginDTO.UserId; SKUSettingDTO.SKUSettingModifiedOn = DateTime.UtcNow; if (SKUSettingDTO.SKUSettingId == 0) { //autoNumberDTO = await _AutoNumber.GetAutoNumber(count, "SKUSetting", LoginDTO); //SKUSettingDTO.SKUSettingId = autoNumberDTO.StartNumber; SKUSettingDTO.SKUSettingCreatedById = LoginDTO.UserId; SKUSettingDTO.SKUSettingCreatedOn = DateTime.UtcNow; await _SKUSettingDAL.SaveSKUSetting(SKUSettingDTO, LoginDTO); return $"{SuccessResponse.SaveSuccess}"; } else { await _SKUSettingDAL.UpdateSKUSetting(SKUSettingDTO, LoginDTO); return $"{SuccessResponse.UpdateSuccess}"; } } catch (ValidationException vex) { throw new Exception(vex.Message); } catch (Exception) { //if (autoNumberDTO != null && SKUSettingDTO.SKUSettingId > 0) // await _AutoNumber.RollbackAutoNumber("SKUSetting", SKUSettingDTO.SKUSettingId, LoginDTO); throw; } } public async Task GetSelectListSKUSetting( int FirstNumber, int MaxResult, CriteriaDTO CriteriaDTO, LoginDTO LoginDTO) { try { return await _SKUSettingDAL.GetSelectListSKUSetting( FirstNumber, MaxResult, CriteriaDTO, LoginDTO); } catch (Exception) { throw; } } public async Task DeleteSKUSetting(int SKUSettingId, LoginDTO LoginDTO) { try { return await _SKUSettingDAL.DeleteSKUSetting(SKUSettingId, LoginDTO); } catch (Exception) { throw; } } public async Task GetSKUSettingList(CriteriaDTO CriteriaDTO, LoginDTO LoginDTO) { try { return await _SKUSettingDAL.GetSKUSettingList(CriteriaDTO, LoginDTO); } catch (Exception) { throw; } } } }