104 lines
4.8 KiB
C#
104 lines
4.8 KiB
C#
using CompanyManagment.App.Contracts.EmployeeDocuments;
|
|
using WorkFlow.Application.Contracts.AdminWorkFlow;
|
|
|
|
namespace WorkFlow.Infrastructure.ACL.EmployeeDocuments
|
|
{
|
|
public interface IWorkFlowEmployeeDocumentsACL
|
|
{
|
|
List<WorkshopWithDocumentsViewModelForWorkFlow> GetWorkshopDocumentsAwaitingReviewForChecker(List<long> workshops);
|
|
List<WorkshopWithDocumentsViewModelForWorkFlow> GetWorkshopsWithDocumentsAwaitingUploadForAdmin(List<long> workshops);
|
|
|
|
Task<int> GetAdminWorkFlowCountForSubmittedDocuments(List<long> workshopIds);
|
|
Task<int> GetAdminWorkFlowCountForNewEmployees(List<long> workshopIds);
|
|
Task<int> GetCheckerWorkFlowCount();
|
|
Task<int> GetWorkshopDocumentRejectedForAdmin(List<long> workshops, long roleId);
|
|
Task<int> GetCreatedEmployeesWorkshopDocumentForAdmin(List<long> workshops, long roleId);
|
|
Task<int> GetClientRejectedDocumentWorkshopsForAdmin(List<long> workshops, long roleId);
|
|
|
|
|
|
/// <summary>
|
|
/// لیست کارگاه هایی که از کلاینت، پرسنلی را شروع به کار زدند و مدارک آنها کامل آپلود نشده است
|
|
/// </summary>
|
|
/// <param name="workshops"></param>
|
|
/// <param name="roleId"></param>
|
|
/// <returns></returns>
|
|
Task<ICollection<WorkshopWithDocumentsViewModelForWorkFlow>> GetWorkshopDocumentCreatedEmployeeForAdmin(
|
|
List<long> workshops, long roleId);
|
|
}
|
|
|
|
public class WorkFlowEmployeeDocumentsACL : IWorkFlowEmployeeDocumentsACL
|
|
{
|
|
private readonly IEmployeeDocumentsApplication _employeeDocumentsApplication;
|
|
|
|
public WorkFlowEmployeeDocumentsACL(IEmployeeDocumentsApplication employeeDocumentsApplication)
|
|
{
|
|
_employeeDocumentsApplication = employeeDocumentsApplication;
|
|
}
|
|
|
|
|
|
public List<WorkshopWithDocumentsViewModelForWorkFlow> GetWorkshopsWithDocumentsAwaitingUploadForAdmin(List<long> workshops)
|
|
{
|
|
return _employeeDocumentsApplication.GetWorkshopDocumentsAwaitingUploadForAdminWorkFlow(workshops).Select(x => new WorkshopWithDocumentsViewModelForWorkFlow()
|
|
{
|
|
WorkshopId = x.WorkshopId,
|
|
UploadItemsCount = x.EmployeesWithoutDocumentCount,
|
|
WorkshopName = x.WorkshopFullName,
|
|
EmployerName = x.EmployerName,
|
|
}).ToList();
|
|
}
|
|
|
|
public async Task<int> GetAdminWorkFlowCountForSubmittedDocuments(List<long> workshopIds)
|
|
{
|
|
return await _employeeDocumentsApplication.GetAdminWorkFlowCountForSubmittedAndRejectedDocuments(workshopIds);
|
|
}
|
|
public async Task<int> GetAdminWorkFlowCountForNewEmployees(List<long> workshopIds)
|
|
{
|
|
return await _employeeDocumentsApplication.GetAdminWorkFlowCountForNewEmployees(workshopIds);
|
|
}
|
|
public async Task<int> GetCheckerWorkFlowCount()
|
|
{
|
|
return await _employeeDocumentsApplication.GetCheckerWorkFlowCount();
|
|
}
|
|
|
|
public async Task<int> GetWorkshopDocumentRejectedForAdmin(List<long> workshops, long roleId)
|
|
{
|
|
return (await _employeeDocumentsApplication.GetWorkshopDocumentRejectedForAdmin(workshops, roleId)).Count;
|
|
}
|
|
|
|
public async Task<int> GetCreatedEmployeesWorkshopDocumentForAdmin(List<long> workshops, long roleId)
|
|
{
|
|
return (await _employeeDocumentsApplication.GetCreatedEmployeesWorkshopDocumentForAdmin(workshops, roleId))
|
|
.Count;
|
|
}
|
|
|
|
public async Task<int> GetClientRejectedDocumentWorkshopsForAdmin(List<long> workshops, long roleId)
|
|
{
|
|
return (await _employeeDocumentsApplication.GetClientRejectedDocumentWorkshopsForAdmin(workshops, roleId))
|
|
.Count;
|
|
}
|
|
|
|
public async Task<ICollection<WorkshopWithDocumentsViewModelForWorkFlow>> GetWorkshopDocumentCreatedEmployeeForAdmin(List<long> workshops, long roleId)
|
|
{
|
|
return (await _employeeDocumentsApplication.GetWorkshopDocumentCreatedEmployeeForAdmin(workshops, roleId)).Select(x => new WorkshopWithDocumentsViewModelForWorkFlow()
|
|
{
|
|
WorkshopId = x.WorkshopId,
|
|
UploadItemsCount = x.EmployeesWithoutDocumentCount,
|
|
WorkshopName = x.WorkshopFullName,
|
|
EmployerName = x.EmployerName,
|
|
}).ToList();
|
|
|
|
}
|
|
|
|
public List<WorkshopWithDocumentsViewModelForWorkFlow> GetWorkshopDocumentsAwaitingReviewForChecker(List<long> workshops)
|
|
{
|
|
return _employeeDocumentsApplication.GetWorkshopsWithDocumentsAwaitingReviewForCheckerWorkFlow().Select(x => new WorkshopWithDocumentsViewModelForWorkFlow()
|
|
{
|
|
WorkshopId = x.WorkshopId,
|
|
UploadItemsCount = x.SubmittedItemsCount
|
|
}).ToList();
|
|
}
|
|
|
|
|
|
}
|
|
}
|