Files
Backend-Api/WorkFlow/Infrastructure/WorkFlow.Infrastructure.ACL/EmployeeDocuments/IWorkFlowEmployeeDocumentsACL.cs
2025-03-08 21:49:34 +03:30

63 lines
2.5 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();
}
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 List<WorkshopWithDocumentsViewModelForWorkFlow> GetWorkshopDocumentsAwaitingReviewForChecker(List<long> workshops)
{
return _employeeDocumentsApplication.GetWorkshopsWithDocumentsAwaitingReviewForCheckerWorkFlow().Select(x=> new WorkshopWithDocumentsViewModelForWorkFlow()
{
WorkshopId = x.WorkshopId,
UploadItemsCount = x.SubmittedItemsCount
}).ToList();
}
}
}