This commit is contained in:
@@ -977,26 +977,12 @@ namespace AyaNova.DataList
|
|||||||
switch (sOperator)
|
switch (sOperator)
|
||||||
{
|
{
|
||||||
case DataListFilterComparisonOperator.Equality:
|
case DataListFilterComparisonOperator.Equality:
|
||||||
{
|
//ARRAY['green'::varchar(255)] <@ tags and array_length(tags,1) = 1
|
||||||
//WHERE ARRAY['green'::varchar(255)] <@ tags and array_length(tags,1) = 1
|
return $"{PostgresTagArrayFragment} <@ {SqlColumnNameToFilter} AND ARRAY_LENGTH({SqlColumnNameToFilter},1) = {normalizedTags.Count}";
|
||||||
StringBuilder sbTags = new StringBuilder();
|
|
||||||
sbTags.Append("@> array[");
|
|
||||||
//Note: with listOptions change to split filter and view the tags are now in sValue as a string of comma delimited strings so split them out here
|
|
||||||
List<string> normalizedTags = TagBiz.NormalizeTags(sValue.Split(',').ToList<string>());
|
|
||||||
foreach (string s in normalizedTags)
|
|
||||||
{
|
|
||||||
|
|
||||||
sbTags.Append($"'{s}',");
|
|
||||||
}
|
|
||||||
sb.Append(sbTags.ToString().TrimEnd(','));
|
|
||||||
sb.Append("::varchar(255)]");
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case DataListFilterComparisonOperator.NotEqual:
|
case DataListFilterComparisonOperator.NotEqual:
|
||||||
sb.Append("<>'");
|
//NOT (ARRAY['green'::varchar(255)] <@ tags and array_length(tags,1) = 1)
|
||||||
sb.Append(sValue);
|
return $"NOT ({PostgresTagArrayFragment} <@ {SqlColumnNameToFilter} AND ARRAY_LENGTH({SqlColumnNameToFilter},1) = {normalizedTags.Count})";
|
||||||
sb.Append("'");
|
|
||||||
break;
|
|
||||||
|
|
||||||
case DataListFilterComparisonOperator.NotContains:
|
case DataListFilterComparisonOperator.NotContains:
|
||||||
sb.Append("Not Like '%");
|
sb.Append("Not Like '%");
|
||||||
|
|||||||
Reference in New Issue
Block a user