using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using GB5Shared.DTO.Framework.AutoNumber; using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using GB5Shared.GenerateAutoNumber; using MMDAL.CustomCode.ItemFeature; using MMDAL.DTO.Item; namespace MMBLL.ItemFeature { public class ItemFeatureBLL : IItemFeatureBLL { private readonly IItemFeatureDAL _ItemFeatureDAL; private readonly AutoNumber _autoNumber; public ItemFeatureBLL(IItemFeatureDAL ItemFeatureDAL, AutoNumber autoNumber) { _ItemFeatureDAL = ItemFeatureDAL; _autoNumber = autoNumber; } public async Task GetSelectListItemFeature(CriteriaDTO CriteriaDTO, LoginDTO LoginDTO) { try { return await _ItemFeatureDAL.GetSelectListItemFeature(CriteriaDTO, LoginDTO); } catch (Exception) { throw; } } public async Task GetItemFeature(int ItemFeatureId, LoginDTO LoginDTO) { try { return await _ItemFeatureDAL.GetItemFeature(ItemFeatureId, LoginDTO); } catch (Exception) { throw; } } public async Task SaveItemFeature(ItemFeatureDTO ItemFeatureDTO, LoginDTO LoginDTO) { try { int initialId = ItemFeatureDTO.ItemFeatureId; int count = 1 + initialId; if (initialId == 0) { AutoNumberDTO autoNumberDTO = await _autoNumber.GetNumberAsync(count, "ITEMFEATURE", LoginDTO); ItemFeatureDTO.ItemFeatureId = autoNumberDTO.StartNumber; await _ItemFeatureDAL.SaveItemFeature(ItemFeatureDTO, LoginDTO); return $"Details Saved Successfully with ItemFeature Id {ItemFeatureDTO.ItemFeatureId}"; } else { await _ItemFeatureDAL.UpdateItemFeature(ItemFeatureDTO, LoginDTO); return $"Details Updated Successfully with ItemFeature Id {ItemFeatureDTO.ItemFeatureId}"; } } catch (Exception) { throw; } } public async Task DeleteItemFeature(int ItemFeatureId, LoginDTO LoginDTO) { try { return await _ItemFeatureDAL.DeleteItemFeature(ItemFeatureId, LoginDTO); } catch (Exception) { throw; } } } }