This commit is contained in:
2020-03-13 19:47:45 +00:00
parent 6ea38ba347
commit 559fb04bd5

View File

@@ -29,6 +29,9 @@ namespace AyaNova.PickList
//it should return results based on the query where there is a single name (display) column and an id column for rowid
//and the fields should be combined in a standard way separated by spaces "Widget widgetserial username" for compactness
//determine this in advance as it will be used in a loop later
bool HasAutoCompleteQuery = !string.IsNullOrWhiteSpace(autoCompleteQuery);
//lists to collect the clauses so to avoid comma fuckery
List<string> lSelect = new List<string>();
List<string> lWhere = new List<string>();
@@ -46,7 +49,8 @@ namespace AyaNova.PickList
{
AyaPickListFieldDefinition activeColumn = pickList.ColumnDefinitions.FirstOrDefault(x => x.IsActiveColumn == true);
//it's ok if there is no active column, it could happen so just roll with it
if(activeColumn!=null){
if (activeColumn != null)
{
lWhere.Add(activeColumn.SqlValueColumnName + " = true");
}
}
@@ -65,19 +69,25 @@ namespace AyaNova.PickList
{//Ignore missing fields in production
var valueColumnName = o.GetSqlValueColumnName();
lSelect.Add(valueColumnName);
string sWhere = $"{valueColumnName} LIKE '%{autoCompleteQuery"
if (HasAutoCompleteQuery)
{
string sWhere = $"{valueColumnName} LIKE '%{autoCompleteQuery}%'";
lWhere.Add(sWhere);
}
}
}
//Now build up the return query
//select
//from
//where
//orderby
//limit, actual sql: "LIMIT {MAXIMUM_RESULT_COUNT}"
return sbSelect.ToString() + pickList.SQLFrom + sbWhere.ToString();
}