From c5a9777898ed422940fe97c88c517388795c569b Mon Sep 17 00:00:00 2001 From: "ashutosh.nehete" Date: Thu, 8 May 2025 10:04:06 +0530 Subject: [PATCH] Added a flag in the Employee List API to retrieve active and inactive employees separately. --- Marco.Pms.Services/Controllers/EmployeeController.cs | 4 ++-- Marco.Pms.Services/Helpers/EmployeeHelper.cs | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Marco.Pms.Services/Controllers/EmployeeController.cs b/Marco.Pms.Services/Controllers/EmployeeController.cs index 7aa4e3b..4451f15 100644 --- a/Marco.Pms.Services/Controllers/EmployeeController.cs +++ b/Marco.Pms.Services/Controllers/EmployeeController.cs @@ -132,7 +132,7 @@ namespace MarcoBMS.Services.Controllers [HttpGet] [Route("list/{projectid?}")] - public async Task GetEmployeesByProject(Guid? projectid) + public async Task GetEmployeesByProject(Guid? projectid, [FromQuery] bool ShowInactive) { if (!ModelState.IsValid) { @@ -142,7 +142,7 @@ namespace MarcoBMS.Services.Controllers .ToList(); return BadRequest(ApiResponse.ErrorResponse("Invalid data", errors, 400)); } - var result = await _employeeHelper.GetEmployeeByProjectId(GetTenantId(), projectid); + var result = await _employeeHelper.GetEmployeeByProjectId(GetTenantId(), projectid, ShowInactive); return Ok(ApiResponse.SuccessResponse(result, "Filter applied.", 200)); diff --git a/Marco.Pms.Services/Helpers/EmployeeHelper.cs b/Marco.Pms.Services/Helpers/EmployeeHelper.cs index 20f98af..03184e5 100644 --- a/Marco.Pms.Services/Helpers/EmployeeHelper.cs +++ b/Marco.Pms.Services/Helpers/EmployeeHelper.cs @@ -71,7 +71,7 @@ namespace MarcoBMS.Services.Helpers } } - public async Task> GetEmployeeByProjectId(Guid TenentId, Guid? ProjectId) + public async Task> GetEmployeeByProjectId(Guid TenentId, Guid? ProjectId, bool ShowInActive) { try { @@ -87,6 +87,11 @@ namespace MarcoBMS.Services.Helpers .ToListAsync(); } + else if (ShowInActive) + { + result = await _context.Employees.Where(c => c.TenantId == TenentId && c.IsActive == false).Include(fp => fp.JobRole) + .Select(c => c.ToEmployeeVMFromEmployee()).ToListAsync(); + } else { result = await _context.Employees.Where(c => c.TenantId == TenentId && c.IsActive == true).Include(fp => fp.JobRole)