public bool IsMatch(SearchQueryParameter searchQueryParameter) { var searchPropertyMap = _filterMapper.GetSearchPropertyMap(searchQueryParameter.Parent, searchQueryParameter.Name); return(!searchPropertyMap.IsCollection); }
private string EmptyFieldQuery(SearchQueryParameter searchFilterInfo, SearchPropertyMap searchProperty, bool isNullCheck) { var anyQuery = $"{searchProperty.AzureSearchPropertyMap}/{searchFilterInfo.ODataOperator.ToString().ToLower()}()"; return(isNullCheck ? $"not {anyQuery}" : anyQuery); }
private string BuildSubQuery(SearchQueryParameter searchFilterInfo) { var subQueryList = new List <string>(); foreach (var additionalSearchFilter in searchFilterInfo.SubQueryParameters) { var additionalFilter = _filterMapper.GetSearchPropertyMap( additionalSearchFilter.AdditionalFilterParent, additionalSearchFilter.AdditionalFilterName); var subQuery = GetAdditionalFilter(additionalFilter, additionalSearchFilter); subQueryList.Add(subQuery); } return(BuildCustomQuery(searchFilterInfo.SubQueryParameterQueryCondition, subQueryList.ToArray())); }
public string BuildQuery(SearchQueryParameter searchQueryParameter) { var searchProperty = _filterMapper.GetSearchPropertyMap(searchQueryParameter.Parent, searchQueryParameter.Name); if ((searchQueryParameter.IsNullCheck || searchQueryParameter.SubQueryParameters == null || searchQueryParameter.SubQueryParameters.Count == 0) && searchQueryParameter.ODataOperator == ODataOperators.Any) { return(EmptyFieldQuery(searchQueryParameter, searchProperty, searchQueryParameter.IsNullCheck)); } return(BuildCollectionQuery(searchQueryParameter, searchProperty)); }
private string GetFilter(SearchPropertyMap propertyMap, SearchQueryParameter searchQueryParameter) { var data = _dataFormats.First(s => s.IsMatch(searchQueryParameter)).GetFormattedValue(searchQueryParameter); var queryList = new List <string>(); if (!string.IsNullOrWhiteSpace(data.Value)) { queryList.Add( $"{propertyMap.AzureSearchPropertyMap} {searchQueryParameter.ODataOperator.ToString().ToLower()} {data.Value}"); } if (data.IsAdditionalNullCheckRequired) { queryList.Add( $"{propertyMap.AzureSearchPropertyMap} {searchQueryParameter.ODataOperator.ToString().ToLower()} null"); } return(BuildCustomQuery(QueryConditions.Or, queryList.ToArray())); }
public string BuildQuery(SearchQueryParameter searchQueryParameter) { var searchPropertyMap = _filterMapper.GetSearchPropertyMap(searchQueryParameter.Parent, searchQueryParameter.Name); var query = searchQueryParameter.ODataOperator == ODataOperators.SearchIn ? GetSearchInFilter(searchPropertyMap, searchQueryParameter.Value) : GetFilter(searchPropertyMap, searchQueryParameter); if (searchQueryParameter.SubQueryParameters == null || searchQueryParameter.SubQueryParameters.Count <= 0) { return(query); } var subQueryValue = BuildSubQuery(searchQueryParameter); query = BuildCustomQuery(searchQueryParameter.SubQueryParameterQueryCondition, query, subQueryValue); return(query); }
private string BuildCollectionQuery(SearchQueryParameter searchQueryParameter, SearchPropertyMap searchProperty) { var queryList = new List <string>(); if (searchQueryParameter.ODataOperator == ODataOperators.SearchIn) { return(GetSearchInFilter(searchProperty, searchQueryParameter.Value)); } StringBuilder builder = new StringBuilder( $"{searchProperty.AzureSearchPropertyMap}/{searchQueryParameter.ODataOperator.ToString().ToLower()}({_itemName}: "); builder.Append(BuildSubQuery(searchQueryParameter)); builder.Append(")"); queryList.Add(builder.ToString()); return(BuildCustomQuery(QueryConditions.Or, queryList.ToArray())); }