using FrameworkDAL.CustomCode.WebServiceSetting; using FrameworkDAL.DTO.WebService; using GB5Shared.DTO.Framework.AutoNumber; using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using GB5Shared.GenerateAutoNumber; using GB5Shared.Resource.Response; using GB5Shared.ResponseStandard; using GB5Shared.Validation; using System; using System.ComponentModel.DataAnnotations; using System.Threading.Tasks; namespace FrameworkBLL.WebServiceSetting { public class WebServiceSettingBLL : IWebServiceSettingBLL { private readonly IWebServiceSettingDAL _WebServiceSettingDAL; private readonly AutoNumber _AutoNumber; private readonly IValidation _Validation; public WebServiceSettingBLL(IWebServiceSettingDAL WebServiceSettingDAL, AutoNumber AutoNumber, IValidation Validation) { _WebServiceSettingDAL = WebServiceSettingDAL; _AutoNumber = AutoNumber; _Validation = Validation; } public async Task GetWebServiceSetting(int WebServiceSettingId, LoginDTO LoginDTO) { try { return await _WebServiceSettingDAL.GetWebServiceSetting(WebServiceSettingId, LoginDTO); } catch (Exception) { throw; } } public async Task SaveWebServiceSetting(WebServiceSettingDTO WebServiceSettingDTO, LoginDTO LoginDTO) { if (WebServiceSettingDTO == null) throw new ArgumentNullException(nameof(WebServiceSettingDTO)); AutoNumberDTO autoNumberDTO = null; try { WebServiceSettingDTO.WebServiceSettingModifiedById = LoginDTO.UserId; WebServiceSettingDTO.WebServiceSettingModifiedOn = DateTime.UtcNow; if (WebServiceSettingDTO.WebServiceSettingId == 0) { autoNumberDTO = await _AutoNumber.GetAutoNumber(1, "WEBSERVICESETTING", LoginDTO); WebServiceSettingDTO.WebServiceSettingId = autoNumberDTO.StartNumber; WebServiceSettingDTO.WebServiceSettingCreatedById = LoginDTO.UserId; WebServiceSettingDTO.WebServiceSettingCreatedOn = DateTime.UtcNow; await _WebServiceSettingDAL.SaveWebServiceSetting(WebServiceSettingDTO, LoginDTO); return $"{SuccessResponse.SaveSuccessMessage} {WebServiceSettingDTO.WebServiceSettingId}"; } else { await _WebServiceSettingDAL.UpdateWebServiceSetting(WebServiceSettingDTO, LoginDTO); return $"{SuccessResponse.UpdateSuccessMessage} {WebServiceSettingDTO.WebServiceSettingId}"; } } catch (Exception ex) { if (autoNumberDTO != null) await _AutoNumber.RollbackAutoNumber("WEBSERVICESETTING", WebServiceSettingDTO.WebServiceSettingId, LoginDTO); throw new Exception($"Failed: {ex.Message}", ex); } } public async Task DeleteWebServiceSetting(int WebServiceSettingId, LoginDTO LoginDTO) { try { return await _WebServiceSettingDAL.DeleteWebServiceSetting(WebServiceSettingId, LoginDTO); } catch (Exception) { throw; } } public async Task GetSelectListWebServiceSetting(CriteriaDTO CriteriaDTO, LoginDTO LoginDTO) { try { return await _WebServiceSettingDAL.GetSelectListWebServiceSetting(CriteriaDTO, LoginDTO); } catch (Exception) { throw; } } } }