using CMSDAL.CustomCode.Campaign; using CMSDAL.DTO.Campaign; using GB5Shared.DTO.Framework.Login; using GB5Shared.Resource.Response; namespace FrameworkBLL.Campaign; public class CampaignBLL : CMSBLL.Campaign.ICampaignBLL { private readonly ICampaignDAL _dal; public CampaignBLL(ICampaignDAL dal) => _dal = dal; public async Task GetListAsync(LoginDTO loginDTO, CancellationToken ct) { try { return await _dal.GetListAsync(loginDTO, ct); } catch { throw; } } public async Task GetByIdAsync(int campaignId, LoginDTO loginDTO, CancellationToken ct) { try { return await _dal.GetByIdAsync(campaignId, loginDTO, ct); } catch { throw; } } public async Task GetAssignmentsAsync(int campaignId, LoginDTO loginDTO, CancellationToken ct) { try { return await _dal.GetAssignmentsAsync(campaignId, loginDTO, ct); } catch { throw; } } public async Task SaveAsync(CampaignDTO dto, LoginDTO loginDTO, CancellationToken ct) { try { return await _dal.SaveAsync(dto, loginDTO, ct); } catch { throw; } } public async Task SendCampaignAsync(SendCampaignDTO dto, LoginDTO loginDTO, CancellationToken ct) { try { foreach (var employeeId in dto.EmployeeIds) { await _dal.InsertAssignmentAsync(dto.CampaignId, employeeId, dto.ContentId, dto.LearningPathId, dto.DueOn, loginDTO, ct); } return SuccessResponse.SaveSuccessMessage; } catch { throw; } } public async Task UpdateAssignmentStatusAsync(int assignmentId, byte status, LoginDTO loginDTO, CancellationToken ct) => await _dal.UpdateAssignmentStatusAsync(assignmentId, status, loginDTO, ct).ConfigureAwait(false); }