From 3b85a92a0bbb1812849b20c0d05bbca0be416c6a Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Mon, 16 Mar 2020 23:13:06 +0000 Subject: [PATCH] --- server/AyaNova/PickList/PickListSqlBuilder.cs | 12 +++++++++++- server/AyaNova/biz/PickListBiz.cs | 8 ++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/server/AyaNova/PickList/PickListSqlBuilder.cs b/server/AyaNova/PickList/PickListSqlBuilder.cs index 44ff897e..aa6b5906 100644 --- a/server/AyaNova/PickList/PickListSqlBuilder.cs +++ b/server/AyaNova/PickList/PickListSqlBuilder.cs @@ -32,6 +32,9 @@ namespace AyaNova.PickList string ActiveSelectFragment = string.Empty; string ActiveWhereFragment = string.Empty; + string TagSpecificSelectFragment = string.Empty; + string TagSpecificWhereFragment = string.Empty; + //PROCESS ROW ID "VALUE" COLUMN // AyaPickListFieldDefinition rowIdColumn = pickList.ColumnDefinitions.FirstOrDefault(x => x.IsRowId == true); @@ -70,6 +73,13 @@ namespace AyaNova.PickList } } + //PROCESS TAG SPECIFIC QUERY + // + if(HasTagSpecificQuery){ + //need a select and a where clause for tags apart from the rest + TagSpecificSelectFragment="" + } + //PROCESS TEMPLATED COLUMNS TO BE RETURNED IN RESULTS // @@ -93,7 +103,7 @@ namespace AyaNova.PickList //TAGS COLUMN // if (o.ColumnDataType == UiFieldDataType.Tags) - { + { lSelect.Add($"(array_to_string({valueColumnName},',')"); //tags can order by without the arraytostring lOrderBy.Add(valueColumnName); diff --git a/server/AyaNova/biz/PickListBiz.cs b/server/AyaNova/biz/PickListBiz.cs index fbd34da8..b31f1dfe 100644 --- a/server/AyaNova/biz/PickListBiz.cs +++ b/server/AyaNova/biz/PickListBiz.cs @@ -111,6 +111,14 @@ namespace AyaNova.Biz } } + //Final fixup if user specifies tag query but there are not tags on this object then + //rather than error just accept it as a no tag query + //Note: it's not valid to have more than one field with tags in the picklist definition so this works + if (PickList.ColumnDefinitions.FirstOrDefault(x => x.ColumnDataType == UiFieldDataType.Tags) == null) + { + TagSpecificQuery = null; + } + //Autocomplete and tagonly query terms now set for consumption by PickListFetcher, ready to fetch... List items = await PickListFetcher.GetResponseAsync(PickList, AutoCompleteQuery, TagSpecificQuery, inactive, ct); return items;