splited the logic to get employee by projecr id

This commit is contained in:
ashutosh.nehete 2025-09-08 15:09:25 +05:30
parent aa2a370467
commit ecabf52f2f

View File

@ -4,6 +4,7 @@ using Marco.Pms.Model.Employees;
using Marco.Pms.Model.Mapper;
using Marco.Pms.Model.ViewModels.Employee;
using MarcoBMS.Services.Service;
using Microsoft.CodeAnalysis;
using Microsoft.EntityFrameworkCore;
namespace MarcoBMS.Services.Helpers
@ -78,12 +79,17 @@ namespace MarcoBMS.Services.Helpers
List<EmployeeVM> result = new List<EmployeeVM>();
if (projectId.HasValue)
{
var employeeIds = await _context.ProjectAllocations
.Where(pa => projectId == pa.ProjectId && pa.IsActive && pa.TenantId == tenantId)
.Select(pa => pa.EmployeeId)
.Distinct()
.ToListAsync();
result = await _context.ProjectAllocations
.Include(pa => pa.Employee)
.ThenInclude(e => e!.JobRole)
.Where(pa => pa.ProjectId == projectId.Value && pa.IsActive && pa.Employee != null && pa.TenantId == tenantId)
.Select(pa => pa.Employee!.ToEmployeeVMFromEmployee())
result = await _context.Employees
.Include(fp => fp.JobRole)
.Where(e => employeeIds.Contains(e.Id) && e.IsActive && e.TenantId == tenantId)
.Select(e => e.ToEmployeeVMFromEmployee())
.Distinct()
.ToListAsync();
}