Witam.
Mam klasy, które ogarniają mi filtrowanie danych po stronie mobilki
public class QueryParameters
{
[JsonProperty(PropertyName = "startDate")]
public DateTime? StartDate { get; set; }
[JsonProperty(PropertyName = "endDate")]
public DateTime? EndDate { get; set; }
[JsonProperty(PropertyName = "group")]
public string? Group { get; set; }
[JsonProperty(PropertyName = "filters")]
public List<FilterItem>? Filters { get; set; }
[JsonProperty(PropertyName = "orderBy")]
public string? OrderBy { get; set; }
[JsonProperty(PropertyName = "search")]
public string? Search { get; set; }
[JsonProperty(PropertyName = "page")]
public int Page { get; set; }
[JsonProperty(PropertyName = "limit")]
public int Limit { get; set; }
}
public class FilterItem
{
[JsonProperty(PropertyName = "key")]
public string Key { get; set; } = string.Empty;
[JsonProperty(PropertyName = "value")]
public string Value { get; set; } = string.Empty;
}
Z mobilki do API przychodzi to w formie
{group: , search: , filters: [{key: bufor, value: bufor = 1}], startDate: 2021-07-01T00:00:00.000, endDate: 2021-07-31T00:00:00.000, orderBy: , page: 0, limit: 20}
Problem w tym, że API nie radzi sobie z List<FilterItem>
- pokazuje w debuggerze Count = 0
. Czy taki format jest w ogóle wspierany przez NET 6 WebAPI? Wcześniej filters było List<string>
(to działało) ale byłem zmuszony zmienić w celu identyfikacji konkretnego filtra po stronie mobilki.
CONTROLLER
[HttpGet("type/{type}")]
public async Task<IActionResult> Get([FromQuery] QueryParameters parameters, [FromRoute] int type)
{
try
{
return Ok(await _reader.GetDocuments(parameters, type));
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}
}