using _0_Framework.Application; using CompanyManagment.App.Contracts.Employee; using WorkFlow.Application.Contracts.AdminWorkFlow; using WorkFlow.Infrastructure.ACL.Employee; using WorkFlow.Infrastructure.ACL.EmployeeDocuments; using WorkFlow.Infrastructure.ACL.Workshop; namespace WorkFlow.Application { public class AdminWorkFlowApplication : IAdminWorkFlowApplication { private readonly IWorkFlowEmployeeDocumentsACL _workFlowEmployeeDocumentsACL; private readonly IWorkFlowWorkshopACL _workFlowWorkshopACL; private readonly IWorkFlowEmployeeACL _workFlowEmployeeACL; public AdminWorkFlowApplication(IWorkFlowEmployeeDocumentsACL workFlowEmployeeDocumentsACL, IWorkFlowWorkshopACL workFlowWorkshopACL, IWorkFlowEmployeeACL workFlowEmployeeACL) { _workFlowEmployeeDocumentsACL = workFlowEmployeeDocumentsACL; _workFlowWorkshopACL = workFlowWorkshopACL; _workFlowEmployeeACL = workFlowEmployeeACL; } #region Pooya public List GetWorkshopDocumentsAwaitingReviewForChecker(List workshops) { return _workFlowEmployeeDocumentsACL.GetWorkshopDocumentsAwaitingReviewForChecker(workshops); } public async Task GetEmployeeDocumentWorkFlowCountsForAdmin(List workshopIds,long roleId) { var count = 0; count += await _workFlowEmployeeDocumentsACL.GetWorkshopDocumentRejectedForAdmin(workshopIds,roleId); count+= await _workFlowEmployeeDocumentsACL.GetCreatedEmployeesWorkshopDocumentForAdmin(workshopIds,roleId); //count+= await _workFlowEmployeeDocumentsACL.GetClientRejectedDocumentWorkshopsForAdmin(workshopIds, roleId); return count; } public async Task GetWorkFlowCountsForAdmin(List workshopIds, long accountId,long roleId) { var employeeDocumentWorkFlowCounts = await GetEmployeeDocumentWorkFlowCountsForAdmin(workshopIds, roleId); var startWork = await GetWorkshopsForEmployeeStartWorkCount(accountId); var leftWork = await GetWorkshopsForLeftWorkTempCount(accountId); return employeeDocumentWorkFlowCounts + startWork + leftWork; } public async Task GetWorkFlowCountForChecker() { return await _workFlowEmployeeDocumentsACL.GetCheckerWorkFlowCount(); } public List GetWorkshopsWithDocumentsAwaitingUploadForAdmin(List workshops) { return _workFlowEmployeeDocumentsACL.GetWorkshopsWithDocumentsAwaitingUploadForAdmin(workshops); } #endregion #region Mahan #region شروع به کار پرسنل افزوده شده public async Task> GetWorkshopsForEmployeeStartWork(long accountId) { return await _workFlowWorkshopACL.GetWorkshopsForEmployeeStartWork(accountId); } public async Task GetWorkshopsForEmployeeStartWorkCount(long accountId) { return await _workFlowWorkshopACL.GetWorkshopsForEmployeeStartWorkCount(accountId); } public async Task> GetClientEmployeesStartWork(long workshopId) { return await _workFlowEmployeeACL.GetClientEmployeesStartWork(workshopId); } public async Task GetEmployeeEditInEmployeeDocumentWorkFlow(long employeeId, long workshopId) { return await _workFlowEmployeeACL.GetEmployeeEditInEmployeeDocumentWorkFlow(employeeId, workshopId); } public async Task EditEmployeeInEmployeeDocumentWorkFlow( EditEmployeeInEmployeeDocument command) { return await _workFlowEmployeeACL.EditEmployeeInEmployeeDocumentWorkFlow(command); } #endregion #region ترک کار موقت public async Task> GetWorkshopsForLeftWorkTemp(long accountId) { return await _workFlowWorkshopACL.GetWorkshopsForLeftWorkTemp(accountId); } public async Task GetWorkshopsForLeftWorkTempCount(long accountId) { return await _workFlowWorkshopACL.GetWorkshopsForLeftWorkTempCount(accountId); } public async Task> GetEmployeesForLeftWorkTemp(long workshopId) { return await _workFlowEmployeeACL.GetEmployeesForLeftWorkTemp(workshopId); } #endregion #region آپلود مدارک پرسنل public async Task> GetWorkshopDocumentCreatedEmployeeForAdmin(List workshops, long roleId) { return await _workFlowEmployeeDocumentsACL.GetWorkshopDocumentCreatedEmployeeForAdmin(workshops, roleId); } #endregion #endregion } }