diff --git a/Marco.Pms.Services/Helpers/EmployeeHelper.cs b/Marco.Pms.Services/Helpers/EmployeeHelper.cs index c359a93..edda815 100644 --- a/Marco.Pms.Services/Helpers/EmployeeHelper.cs +++ b/Marco.Pms.Services/Helpers/EmployeeHelper.cs @@ -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 result = new List(); 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(); }