Files
Backend-Api/WorkFlow/Application/WorkFlow.Application/AdminWorkFlowApplication.cs

154 lines
5.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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.InstitutionContract;
using WorkFlow.Infrastructure.ACL.Workshop;
namespace WorkFlow.Application
{
public class AdminWorkFlowApplication : IAdminWorkFlowApplication
{
private readonly IWorkFlowEmployeeDocumentsACL _workFlowEmployeeDocumentsACL;
private readonly IWorkFlowWorkshopACL _workFlowWorkshopACL;
private readonly IWorkFlowEmployeeACL _workFlowEmployeeACL;
private readonly IWorkFlowInstitutionContractACL _workFlowInstitutionContractACL;
public AdminWorkFlowApplication(IWorkFlowEmployeeDocumentsACL workFlowEmployeeDocumentsACL,
IWorkFlowWorkshopACL workFlowWorkshopACL, IWorkFlowEmployeeACL workFlowEmployeeACL,
IWorkFlowInstitutionContractACL workFlowInstitutionContractACL)
{
_workFlowEmployeeDocumentsACL = workFlowEmployeeDocumentsACL;
_workFlowWorkshopACL = workFlowWorkshopACL;
_workFlowEmployeeACL = workFlowEmployeeACL;
_workFlowInstitutionContractACL = workFlowInstitutionContractACL;
}
#region Pooya
public List<WorkshopWithDocumentsViewModelForWorkFlow> GetWorkshopDocumentsAwaitingReviewForChecker(
List<long> workshops)
{
return _workFlowEmployeeDocumentsACL.GetWorkshopDocumentsAwaitingReviewForChecker(workshops);
}
public async Task<int> GetEmployeeDocumentWorkFlowCountsForAdmin(List<long> 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<int> GetWorkFlowCountsForAdmin(List<long> workshopIds, long accountId, long roleId,
List<int> permissions)
{
var employeeDocumentWorkFlowCounts = await GetEmployeeDocumentWorkFlowCountsForAdmin(workshopIds, roleId);
var startWork = await GetWorkshopsForEmployeeStartWorkCount(accountId);
var leftWork = await GetWorkshopsForLeftWorkTempCount(accountId);
int institutionContract = 0;
if (permissions.Any(x => x == 1004))
{
institutionContract = await GetInstitutionContractWorkflowCount();
}
return employeeDocumentWorkFlowCounts + startWork + leftWork +institutionContract;
}
public async Task<int> GetWorkFlowCountForChecker()
{
return await _workFlowEmployeeDocumentsACL.GetCheckerWorkFlowCount();
}
public List<WorkshopWithDocumentsViewModelForWorkFlow> GetWorkshopsWithDocumentsAwaitingUploadForAdmin(
List<long> workshops)
{
return _workFlowEmployeeDocumentsACL.GetWorkshopsWithDocumentsAwaitingUploadForAdmin(workshops);
}
#endregion
#region Mahan
#region شروع به کار پرسنل افزوده شده
public async Task<ICollection<WorkshopWithStartedWorkWorkFlowViewModel>> GetWorkshopsForEmployeeStartWork(
long accountId)
{
return await _workFlowWorkshopACL.GetWorkshopsForEmployeeStartWork(accountId);
}
public async Task<int> GetWorkshopsForEmployeeStartWorkCount(long accountId)
{
return await _workFlowWorkshopACL.GetWorkshopsForEmployeeStartWorkCount(accountId);
}
public async Task<ICollection<ClientStartedWorkEmployeesWorkFlowViewModel>> GetClientEmployeesStartWork(
long workshopId)
{
return await _workFlowEmployeeACL.GetClientEmployeesStartWork(workshopId);
}
public async Task<GetEditEmployeeInEmployeeDocumentViewModel> GetEmployeeEditInEmployeeDocumentWorkFlow(
long employeeId, long workshopId)
{
return await _workFlowEmployeeACL.GetEmployeeEditInEmployeeDocumentWorkFlow(employeeId, workshopId);
}
public async Task<OperationResult> EditEmployeeInEmployeeDocumentWorkFlow(
EditEmployeeInEmployeeDocument command)
{
return await _workFlowEmployeeACL.EditEmployeeInEmployeeDocumentWorkFlow(command);
}
#endregion
#region ترک کار موقت
public async Task<ICollection<WorkshopWithLeftWorkWorkFlowViewModel>> GetWorkshopsForLeftWorkTemp(
long accountId)
{
return await _workFlowWorkshopACL.GetWorkshopsForLeftWorkTemp(accountId);
}
public async Task<int> GetWorkshopsForLeftWorkTempCount(long accountId)
{
return await _workFlowWorkshopACL.GetWorkshopsForLeftWorkTempCount(accountId);
}
public async Task<int> GetInstitutionContractWorkflowCount()
{
return await _workFlowInstitutionContractACL.GetInstitutionContractWorkflowCount();
}
public async Task<ICollection<ClientLeftWorkEmployeesWorkFlowViewModel>> GetEmployeesForLeftWorkTemp(
long workshopId)
{
return await _workFlowEmployeeACL.GetEmployeesForLeftWorkTemp(workshopId);
}
#endregion
#region آپلود مدارک پرسنل
public async Task<ICollection<WorkshopWithDocumentsViewModelForWorkFlow>>
GetWorkshopDocumentCreatedEmployeeForAdmin(List<long> workshops, long roleId)
{
return await _workFlowEmployeeDocumentsACL.GetWorkshopDocumentCreatedEmployeeForAdmin(workshops, roleId);
}
#endregion
#endregion
}
}