Untitled
unknown
plain_text
6 months ago
1.4 kB
2
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