Untitled

 avatar
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