Example #1
0
        private string GetSearchInFilter(SearchPropertyMap propertyMap, object values)
        {
            if (string.IsNullOrWhiteSpace(values.ToString()))
            {
                return(string.Empty);
            }

            var azureSearchPropertyMap = propertyMap.AzureSearchPropertyMap;

            if (propertyMap.PropertyName != propertyMap.ParentPropertyName)
            {
                var parent = _filterMapper.GetSearchPropertyMap(propertyMap.ParentPropertyName, propertyMap.ParentPropertyName);
                if (parent != null)
                {
                    azureSearchPropertyMap = $"{parent.AzureSearchPropertyMap}/{propertyMap.AzureSearchPropertyMap}";
                }
            }

            var queryList = new List <string>()
            {
                $"search.in({azureSearchPropertyMap}, '{values}', '{_searchConfiguration.Delimiter}')"
            };

            return(BuildCustomQuery(QueryConditions.Or, queryList.ToArray()));
        }
Example #2
0
        private string EmptyFieldQuery(SearchQueryParameter searchFilterInfo, SearchPropertyMap searchProperty,
                                       bool isNullCheck)
        {
            var anyQuery =
                $"{searchProperty.AzureSearchPropertyMap}/{searchFilterInfo.ODataOperator.ToString().ToLower()}()";

            return(isNullCheck ? $"not {anyQuery}" : anyQuery);
        }
Example #3
0
        private string GetAdditionalFilter(SearchPropertyMap propertyMap,
                                           SearchSubQueryParameter additionalSearchFilterInfo)
        {
            var data = _dataFormats.First(s => s.IsMatch(additionalSearchFilterInfo)).GetFormattedValue(additionalSearchFilterInfo);

            var queryList = new List <string>();

            queryList.Add(
                $"{propertyMap.AzureSearchPropertyMap} {additionalSearchFilterInfo.ODataOperator.ToString().ToLower()} {data.Value}");

            if (data.IsAdditionalNullCheckRequired)
            {
                queryList.Add(
                    $"{propertyMap.AzureSearchPropertyMap} {additionalSearchFilterInfo.ODataOperator.ToString().ToLower()} null");
            }

            return(BuildCustomQuery(QueryConditions.Or, queryList.ToArray()));
        }
Example #4
0
        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()));
        }
Example #5
0
        private string GetAdditionalFilter(SearchPropertyMap propertyMap,
                                           SearchSubQueryParameter additionalSearchFilterInfo)
        {
            var queryList = new List <string>();

            if (additionalSearchFilterInfo.ODataOperator == ODataOperators.SearchIn)
            {
                if (string.IsNullOrWhiteSpace(additionalSearchFilterInfo.Value.ToString()))
                {
                    return(string.Empty);
                }

                queryList.Add(
                    $"search.in({_itemName}/{propertyMap.AzureSearchPropertyMap}, '{additionalSearchFilterInfo.Value}','{_searchConfiguration.Delimiter}')");
            }
            else
            {
                var data = _dataFormats.First(s => s.IsMatch(additionalSearchFilterInfo)).GetFormattedValue(additionalSearchFilterInfo);

                if (string.IsNullOrWhiteSpace(data.Value))
                {
                    return(string.Empty);
                }

                queryList.Add(
                    $"{_itemName}/{propertyMap.AzureSearchPropertyMap} {additionalSearchFilterInfo.ODataOperator.ToString().ToLower()} {data.Value}");

                if (data.IsAdditionalNullCheckRequired)
                {
                    queryList.Add(
                        $"{_itemName}/{propertyMap.AzureSearchPropertyMap} {additionalSearchFilterInfo.ODataOperator.ToString().ToLower()} null");
                }
            }

            return(BuildCustomQuery(QueryConditions.Or, queryList.ToArray()));
        }
Example #6
0
        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()));
        }