Organization_Management #142
@ -123,7 +123,7 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("list/organizations/{projectId}")]
|
[HttpGet("list/organizations/{projectId}")]
|
||||||
public async Task<IActionResult> GetEmployeesByProjectAsync(Guid projectId, [FromQuery] string searchString)
|
public async Task<IActionResult> GetEmployeesByProjectAsync(Guid projectId, [FromQuery] string searchString, [FromQuery] Guid? organizationId)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -179,10 +179,17 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Fetch employees allocated to the project matching the search criteria
|
// Fetch employees allocated to the project matching the search criteria
|
||||||
var employees = await _context.Employees
|
var employeesQuery = _context.Employees
|
||||||
.AsNoTracking() // Improves performance by disabling change tracking for read-only query
|
.AsNoTracking() // Improves performance by disabling change tracking for read-only query
|
||||||
.Include(e => e.JobRole)
|
.Include(e => e.JobRole)
|
||||||
.Where(e => (e.FirstName + " " + e.LastName).Contains(searchString) && organizationIds.Contains(e.OrganizationId))
|
.Where(e => (e.FirstName + " " + e.LastName).Contains(searchString) && organizationIds.Contains(e.OrganizationId));
|
||||||
|
|
||||||
|
if (organizationId.HasValue)
|
||||||
|
{
|
||||||
|
employeesQuery = employeesQuery.Where(e => e.OrganizationId == organizationId);
|
||||||
|
}
|
||||||
|
|
||||||
|
var employees = await employeesQuery
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
|
|
||||||
var result = employees.Select(e => _mapper.Map<EmployeeVM>(e)).Distinct().ToList();
|
var result = employees.Select(e => _mapper.Map<EmployeeVM>(e)).Distinct().ToList();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user