using _0_Framework.Application; using CompanyManagment.App.Contracts.Employee; using WorkFlow.Application.Contracts.AdminWorkFlow; namespace WorkFlow.Infrastructure.ACL.Employee; public interface IWorkFlowEmployeeACL { Task> GetClientEmployeesStartWork(long workshopId); Task> GetEmployeesForLeftWorkTemp(long workshopId); Task GetEmployeeEditInEmployeeDocumentWorkFlow(long employeeId, long workshopId); Task EditEmployeeInEmployeeDocumentWorkFlow(EditEmployeeInEmployeeDocument command); } public class WorkFlowEmployeeACL : IWorkFlowEmployeeACL { private readonly IEmployeeApplication _employeeApplication; public WorkFlowEmployeeACL(IEmployeeApplication employeeApplication) { _employeeApplication = employeeApplication; } public async Task> GetClientEmployeesStartWork(long workshopId) { var dto = await _employeeApplication.GetClientEmployeesStartWork(workshopId); return dto.Select(x => new ClientStartedWorkEmployeesWorkFlowViewModel() { WorkshopId = x.WorkshopId, EmployeeId = x.EmployeeId, EmployeeName = x.EmployeeName, HasCompleteEmployeeDocument = x.HasCompleteEmployeeDocument }).ToList(); } public async Task> GetEmployeesForLeftWorkTemp(long workshopId) { var dto = await _employeeApplication.GetEmployeesForLeftWorkTemp(workshopId); return dto.Select(x => new ClientLeftWorkEmployeesWorkFlowViewModel() { WorkshopId = x.WorkshopId, EmployeeId = x.EmployeeId, EmployeeName = x.EmployeeName, LeftWorkDate = x.LeftWorkDateTime }).ToList(); } public async Task GetEmployeeEditInEmployeeDocumentWorkFlow( long employeeId, long workshopId) { return await _employeeApplication.GetEmployeeEditInEmployeeDocumentWorkFlow(employeeId, workshopId); } public async Task EditEmployeeInEmployeeDocumentWorkFlow(EditEmployeeInEmployeeDocument command) { return await _employeeApplication.EditEmployeeInEmployeeDocumentWorkFlow(command); } }