Untitled
unknown
plain_text
a year ago
1.4 kB
5
Indexable
if (indexAttribute.IsArray)
{
//Costruzione della query condition a partire da un array di valori da ricercare
var searchArray = (ICollection)prop.GetValue(searchCriteria);
if (searchArray.Count > 0)
{
var listArrayFilterQuery = new List<Query>();
var nestedProperties = prop.GetType().GetProperties();
foreach (var i in searchArray)
{
var itemArrayFilterQuery = new List<Query>();
foreach (var property in i.GetType().GetProperties(BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Instance))
{
var indexNestedAttribute = property.GetCustomAttribute<Dto.IndexAttribute>();
var value = property.GetValue(i);
if (value != null)
{
itemArrayFilterQuery.Add(new MatchQuery((indexNestedAttribute.PathProperty ?? property.Name)?.Replace("/", ".")) { Query = property.GetValue(i) });
}
}
if (itemArrayFilterQuery.Count > 0)
{
var queryItemArrayFilter = new BoolQuery
{
Must = itemArrayFilterQuery
};
listArrayFilterQuery.Add(queryItemArrayFilter);
}
}
if (listArrayFilterQuery.Count > 0)
{
var queryArrayFilter = new BoolQuery
{
Should = listArrayFilterQuery
};
listFilterQuery.Add(queryArrayFilter);
}
}
}Editor is loading...
Leave a Comment