using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using GB5Shared.DTO.Framework.Login; using GB5Shared.DTO.Framework.User; using GB5Shared.DTO.Framework.AutoNumber; using GB5Shared.GenerateAutoNumber; using PayRollDAL.CustomeCode.PayProduction; using PayRollDAL.DTO.PayProduction; using Newtonsoft.Json; namespace PayRollBLL.PayProduction { public class PayProductionBLL : IPayProductionBLL { private readonly IPayProductionDAL _ipayproductionDAL; private readonly AutoNumber _autonumber; public PayProductionBLL(IPayProductionDAL IPayProductionDAL, AutoNumber autonumber) { _ipayproductionDAL = IPayProductionDAL; _autonumber = autonumber; } public async Task SavePayProduction(PayProductionDTO PayProductionDTO, LoginDTO LoginDTO) { int Count = 1; int Initial_Id; try { Initial_Id = PayProductionDTO.PayProductionId; Count = Count + PayProductionDTO.PayProductionDetailArray.Count; AutoNumberDTO AutoNumberDTO = await _autonumber.GetNumberAsync(Count, "PAYPRODUCTION", LoginDTO); if (Initial_Id == 0) { PayProductionDTO.PayProductionId = AutoNumberDTO.StartNumber; } int TmpCount = 1; for (int i = 0; i < PayProductionDTO.PayProductionDetailArray.Count; i++) { PayProductionDTO.PayProductionDetailArray[i].PayProductionId = PayProductionDTO.PayProductionId; PayProductionDTO.PayProductionDetailArray[i].PayProductionDetailId = AutoNumberDTO.StartNumber + TmpCount; TmpCount += 1; } string Json = JsonConvert.SerializeObject(PayProductionDTO); return await _ipayproductionDAL.SavePayProduction(PayProductionDTO, LoginDTO); } catch (Exception ) { throw ; } } } }