This commit is contained in:
2020-01-16 00:54:47 +00:00
parent 3c8bcdb7a9
commit 23fc1219e4
3 changed files with 24 additions and 34 deletions

View File

@@ -156,7 +156,7 @@ namespace AyaNova.Biz
//first column is the non visible Default Id column so that the client knows what to open when there is no field with ID selected that matches underlying record type
//in this case the default of id is sufficient for this list
l.Add(new ObjectField { Key = "_df_", AyObjectType = (int)AyaType.Widget });
l.Add(new ObjectField { Key = "df", AyObjectType = (int)AyaType.Widget });
l.Add(new ObjectField { Key = "WidgetName", PropertyName = "Name", DataType = (int)AyaDataType.Text, Hideable = false });
l.Add(new ObjectField { Key = "WidgetSerial", PropertyName = "Serial", DataType = (int)AyaDataType.Integer });
l.Add(new ObjectField { Key = "WidgetDollarAmount", PropertyName = "DollarAmount", DataType = (int)AyaDataType.Currency });
@@ -188,7 +188,7 @@ namespace AyaNova.Biz
#endregion
case USER_KEY:
#region USER_KEY
l.Add(new ObjectField { Key = "_df_", AyObjectType = (int)AyaType.User });
l.Add(new ObjectField { Key = "df", AyObjectType = (int)AyaType.User });
l.Add(new ObjectField { Key = "Name", PropertyName = "Name", SharedLTKey = true, DataType = (int)AyaDataType.Text, Hideable = false });
l.Add(new ObjectField { Key = "UserEmployeeNumber", PropertyName = "EmployeeNumber", DataType = (int)AyaDataType.Text });
l.Add(new ObjectField { Key = "AuthorizationRoles", PropertyName = "Roles", Hideable = false, DataType = (int)AyaDataType.Enum, EnumType = typeof(AuthorizationRoles).ToString() });
@@ -240,7 +240,7 @@ namespace AyaNova.Biz
//Standard mini COLUMN definition
public static string GenerateMINIListColumnsJSON(AyaType defaultLinkType)
{
return $"[ {{\"cm\":\"_df_\",\"dt\":0,\"ay\":{(int)defaultLinkType}}},{{\"cm\":\"Widget\",\"dt\":{(int)AyaDataType.Text},\"ay\":{(int)defaultLinkType}}}]";
return $"[ {{\"cm\":\"df\",\"dt\":0,\"ay\":{(int)defaultLinkType}}},{{\"cm\":\"Widget\",\"dt\":{(int)AyaDataType.Text},\"ay\":{(int)defaultLinkType}}}]";
}
@@ -261,8 +261,8 @@ namespace AyaNova.Biz
StringBuilder sb = new StringBuilder();
sb.Append("[");
//_df_ First column is always the _df_ column
sb.Append($"{{\"cm\":\"_df_\",\"dt\":0,\"ay\":{(int)defaultLinkType}}}");
//df First column is always the df column
sb.Append($"{{\"cm\":\"df\",\"dt\":0,\"ay\":{(int)defaultLinkType}}}");
foreach (string s in fullFields)
{
@@ -349,17 +349,7 @@ namespace AyaNova.Biz
}
}
public string GetSqlIdColumnName()
{
if (string.IsNullOrEmpty(SqlIdColumn))
{
return "id";
}
else
{
return SqlIdColumn;
}
}
}

View File

@@ -36,14 +36,22 @@ namespace AyaNova.Biz
StringBuilder sb = new StringBuilder();
sb.Append("SELECT ");
//Default ID column for each row (always is _df_)
ObjectField def = objectFieldsList.FirstOrDefault(x => x.Key == "_df_");
//Default ID column for each row (always is aliased as df)
ObjectField def = objectFieldsList.FirstOrDefault(x => x.Key == "df");
if (def == null)
{
throw new System.ArgumentNullException($"SqlSelectBuilder: objectFieldList for key \"{objectKey}\" is missing the _df_ default field");
throw new System.ArgumentNullException($"SqlSelectBuilder: objectFieldList for key \"{objectKey}\" is missing the df default field");
}
sb.Append(def.SqlIdColumn);
sb.Append(" AS _df_ ");
if (string.IsNullOrEmpty(def.SqlIdColumn))
{
sb.Append("id");//default when no alternate column is specified
}
else
{
sb.Append(def.SqlIdColumn);
}
sb.Append(" AS df ");
foreach (string ColumnName in templateFieldList)
{
@@ -56,18 +64,10 @@ namespace AyaNova.Biz
}
#endif
if (o != null)
{//Here is where we can vet the field name, if it doesn't exist though, for now we'll just ignore those ones
{//Ignore missing fields in production
sb.Append(",");
sb.Append("{");
//Build required part of column definition
sb.Append($"\"cm\":\"{o.Key}\",\"dt\":{(int)o.DataType}");
//Has a AyObjectType? (linkable / openable)
if (o.AyObjectType != 0)
sb.Append($",\"ay\":{(int)o.AyObjectType}");
sb.Append("}");
sb.Append(o.GetSqlColumnName());
}
}