154 lines
5.9 KiB
C#
154 lines
5.9 KiB
C#
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
|
||
}
|
||
} |