Added the search string in get infra project list API
This commit is contained in:
parent
eed97d31c6
commit
0277303c54
@ -66,7 +66,7 @@ namespace MarcoBMS.Services.Controllers
|
||||
/// <returns>An ApiResponse containing a list of projects or an error.</returns>
|
||||
|
||||
[HttpGet("list")]
|
||||
public async Task<IActionResult> GetAllProjects([FromQuery] int pageNumber = 1, [FromQuery] int pageSize = 20)
|
||||
public async Task<IActionResult> GetAllProjects([FromQuery] string? searchString, [FromQuery] int pageNumber = 1, [FromQuery] int pageSize = 20)
|
||||
{
|
||||
// --- Input Validation and Initial Setup ---
|
||||
if (!ModelState.IsValid)
|
||||
@ -79,7 +79,7 @@ namespace MarcoBMS.Services.Controllers
|
||||
return BadRequest(ApiResponse<object>.ErrorResponse("Invalid request data provided.", errors, 400));
|
||||
}
|
||||
var loggedInEmployee = await _userHelper.GetCurrentEmployeeAsync();
|
||||
var response = await _projectServices.GetAllProjectsAsync(pageNumber, pageSize, loggedInEmployee, tenantId);
|
||||
var response = await _projectServices.GetAllProjectsAsync(searchString, pageNumber, pageSize, loggedInEmployee, tenantId);
|
||||
return StatusCode(response.StatusCode, response);
|
||||
}
|
||||
|
||||
|
||||
@ -173,7 +173,7 @@ namespace Marco.Pms.Services.Service
|
||||
return ApiResponse<object>.ErrorResponse("An internal server error occurred. Please try again later.", null, 500);
|
||||
}
|
||||
}
|
||||
public async Task<ApiResponse<object>> GetAllProjectsAsync(int pageNumber, int pageSize, Employee loggedInEmployee, Guid tenantId)
|
||||
public async Task<ApiResponse<object>> GetAllProjectsAsync(string? searchString, int pageNumber, int pageSize, Employee loggedInEmployee, Guid tenantId)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -223,6 +223,14 @@ namespace Marco.Pms.Services.Service
|
||||
var totalEntites = responseVms.Count;
|
||||
var totalPages = (int)Math.Ceiling((double)totalEntites / pageSize);
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(searchString))
|
||||
{
|
||||
var normalized = searchString.Trim().ToLowerInvariant();
|
||||
responseVms = responseVms
|
||||
.Where(p => p.Name!.ToLower().Contains(normalized) ||
|
||||
(!string.IsNullOrWhiteSpace(p.ShortName) && p.ShortName.ToLower().Contains(normalized))).ToList();
|
||||
}
|
||||
|
||||
responseVms = responseVms
|
||||
.OrderBy(p => p.Name)
|
||||
.Skip((pageNumber - 1) * pageSize)
|
||||
|
||||
@ -12,7 +12,7 @@ namespace Marco.Pms.Services.Service.ServiceInterfaces
|
||||
{
|
||||
Task<ApiResponse<object>> GetBothProjectBasicListAsync(string? searchString, Employee loggedInEmployee, Guid tenantId);
|
||||
Task<ApiResponse<object>> GetAllProjectsBasicAsync(bool provideAll, Employee loggedInEmployee, Guid tenantId);
|
||||
Task<ApiResponse<object>> GetAllProjectsAsync(int pageNumber, int pageSize, Employee loggedInEmployee, Guid tenantId);
|
||||
Task<ApiResponse<object>> GetAllProjectsAsync(string? searchString, int pageNumber, int pageSize, Employee loggedInEmployee, Guid tenantId);
|
||||
Task<ApiResponse<object>> GetProjectAsync(Guid id, Employee loggedInEmployee, Guid tenantId);
|
||||
Task<ApiResponse<object>> GetProjectDetailsAsync(Guid id, Employee loggedInEmployee, Guid tenantId);
|
||||
Task<ApiResponse<object>> GetProjectDetailsOldAsync(Guid id, Employee loggedInEmployee, Guid tenantId);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user