I have method in typeScript file:
searchUsers() {
this.filterParams = [
{ parameterName: 'FirstName', filterOperator: 'Like', parameterValue: this.firstName },
{ parameterName: 'LastName', filterOperator: 'Like', parameterValue: this.lastName },
{ parameterName: 'UserName', filterOperator: 'Like', parameterValue: this.userName },
{ parameterName: 'Email', filterOperator: 'Like', parameterValue: this.email }
];
this.service.getUsers(this.id, this.filterParams);
}
which calls service method:
getUsers(id, filterParams) {
let params = new HttpParams()
.set('id', id);
.set('filterParams', filterParams);
this.http.get(this.rootURL + '/user/getUsers', { params: params })
.subscribe((res: any) => {
this.users = res.users;
};
});
}
FilterParameter model in web api core is:
public class FilterParameter
{
public string ParameterName;
public FilterOperator FilterOperator;
public string ParameterValue;
}
My web api core method is firing after click on search button in angular. This is my method in web api core:
[Route("getUsers/{id?}/{filterParams?}")]
[HttpGet]
public ActionResult GetUsers(int id, [FromQuery] List<FilterParameter> filterParams)
{
try
{
_logger.LogInformation("Geting all users from the database");
var users = _baseBL.GetUsers(id, filterModel);
return Ok(new { users = users.Results, usersCount = users.RowCount});
}
catch (Exception ex)
{
_logger.LogError($"Something went wrong: {ex}");
return StatusCode(500, "Internal server error");
}
}
Id is good, but the problem is that my filterParams are empty list. Any idea why?