still torn apart but getting there at server, no client work done yet at all

This commit is contained in:
2021-01-27 01:22:15 +00:00
parent 3ffc01f393
commit 89bd335de1
5 changed files with 32 additions and 29 deletions

View File

@@ -30,7 +30,7 @@ namespace AyaNova.DataList
public long CurrentUserId { get; set; } public long CurrentUserId { get; set; }
public List<string> DefaultColumns { get; set; } public List<string> DefaultColumns { get; set; }
public List<string> DefaultSortBy { get; set; } public Dictionary<string, string> DefaultSortBy { get; set; }
//set defaults if not provided in listOptions //set defaults if not provided in listOptions
public void SetListOptionDefaultsIfNecessary(DataListOptions listOptions) public void SetListOptionDefaultsIfNecessary(DataListOptions listOptions)
@@ -42,18 +42,18 @@ namespace AyaNova.DataList
} }
//return array of field keys in list view // //return array of field keys in list view
public List<string> GetFieldListFromListView(JArray listViewArray) // public List<string> GetFieldListFromListView(JArray listViewArray)
{ // {
// [{key:"COLUMN UNIQUE KEY ID",sort:"-" or "+",filter:{any:true/false,items:[{FILTER OBJECT SEE BELOW}]} }, {key:"second column unique key"},{...etc...}] // // [{key:"COLUMN UNIQUE KEY ID",sort:"-" or "+",filter:{any:true/false,items:[{FILTER OBJECT SEE BELOW}]} }, {key:"second column unique key"},{...etc...}]
List<string> ret = new List<string>(); // List<string> ret = new List<string>();
for (int i = 0; i < listViewArray.Count; i++) // for (int i = 0; i < listViewArray.Count; i++)
{ // {
var cm = listViewArray[i]; // var cm = listViewArray[i];
ret.Add(cm["fld"].Value<string>()); // ret.Add(cm["fld"].Value<string>());
} // }
return ret; // return ret;
} // }

View File

@@ -230,7 +230,7 @@ namespace AyaNova.DataList
//BUILD THE COLUMNS RETURN PROPERTY JSON FRAGMENT //BUILD THE COLUMNS RETURN PROPERTY JSON FRAGMENT
Newtonsoft.Json.Linq.JArray ColumnsJSON = null; Newtonsoft.Json.Linq.JArray ColumnsJSON = null;
ColumnsJSON = DataList.GenerateListColumnsJSONFromListView(listOptions.Columns); ColumnsJSON = DataList.GenerateListColumnsJSONFromListView(listOptions.Columns);//<<<-----this next
return new ApiDataListResponse(rows, totalRecordCount, ColumnsJSON); return new ApiDataListResponse(rows, totalRecordCount, ColumnsJSON);

View File

@@ -33,7 +33,7 @@ namespace AyaNova.DataList
NEW: NEW:
columns:["PartInventoryTransactionEntryDate","PartPartNumber","PartWarehouseName","PartInventoryTransactionQuantity","PartInventoryTransactionDescription","PartInventoryTransactionSource","PartInventoryBalance"] columns:["PartInventoryTransactionEntryDate","PartPartNumber","PartWarehouseName","PartInventoryTransactionQuantity","PartInventoryTransactionDescription","PartInventoryTransactionSource","PartInventoryBalance"]
sortBy:[{"PartInventoryTransactionEntryDate":"-"}],//All sorted columns here as keyvalue pairs value is a string of "+" for ascending "-" for descending sortBy:[{"PartInventoryTransactionEntryDate":"-"}],//All sorted columns here as keyvalue pairs value is a string of "+" for ascending "-" for descending and are IN ORDER of how to be sorted
filter:[{column:"PartPartNumber",any:true/false,items:[{op: "=",value: "400735"}]}], filter:[{column:"PartPartNumber",any:true/false,items:[{op: "=",value: "400735"}]}],
clientCriteria:"2" //could be anything here that makes sense to the list, in this case an example customer id for customernotedatalist clientCriteria:"2" //could be anything here that makes sense to the list, in this case an example customer id for customernotedatalist
*/ */

View File

@@ -17,18 +17,20 @@ namespace AyaNova.DataList
//iterate the datafilter and concatenate a sql query from it //iterate the datafilter and concatenate a sql query from it
// [{key:"COLUMN UNIQUE KEY ID",sort:"-" or "+",filter:{any:true/false,items:[{FILTER OBJECT SEE BELOW}]} }, {key:"second column unique key"},{...etc...}] // [{key:"COLUMN UNIQUE KEY ID",sort:"-" or "+",filter:{any:true/false,items:[{FILTER OBJECT SEE BELOW}]} }, {key:"second column unique key"},{...etc...}]
bool SortItemAdded = false; bool SortItemAdded = false;
for (int i = 0; i < listViewArray.Count; i++) // for (int i = 0; i < listViewArray.Count; i++)
foreach(KeyValuePair<string,string> kvSort in listOptions.SortBy)
{ {
var cm = listViewArray[i]; // var cm = listViewArray[i];
//skip it if sort is not defined // //skip it if sort is not defined
if (cm["sort"] == null) // if (cm["sort"] == null)
{ // {
continue; // continue;
} // }
var fld = cm["fld"].Value<string>(); // var fld = cm["fld"].Value<string>();
var dir = cm["sort"].Value<string>(); // var dir = cm["sort"].Value<string>();
//Get the correct sql column name //Get the correct sql column name
AyaDataListFieldDefinition DataListField = objectFieldsList.FirstOrDefault(z => z.FieldKey == fld); AyaDataListFieldDefinition DataListField = objectFieldsList.FirstOrDefault(z => z.FieldKey == kvSort.Key);
//No sorting on custom fields! //No sorting on custom fields!
if (DataListField.IsCustomField) if (DataListField.IsCustomField)
{ {
@@ -38,7 +40,7 @@ namespace AyaNova.DataList
//Developers little helper //Developers little helper
if (DataListField == null) if (DataListField == null)
{ {
throw new System.ArgumentNullException($"DEV ERROR in DataListSqlFilterOrderByBuilder.cs: field {fld} specified in template was NOT found in ObjectFields list"); throw new System.ArgumentNullException($"DEV ERROR in DataListSqlFilterOrderByBuilder.cs: field {kvSort.Key} specified in template was NOT found in ObjectFields list");
} }
#endif #endif
var SQLValueColumnName = DataListField.GetSqlValueColumnName(); var SQLValueColumnName = DataListField.GetSqlValueColumnName();
@@ -49,7 +51,8 @@ namespace AyaNova.DataList
sb.Append(" "); sb.Append(" ");
sb.Append(SQLValueColumnName); sb.Append(SQLValueColumnName);
sb.Append(" "); sb.Append(" ");
sb.Append(dir == "+" ? "ASC" : "DESC"); //sb.Append(dir == "+" ? "ASC" : "DESC");
sb.Append(kvSort.Value == "+" ? "ASC" : "DESC");
SortItemAdded = true; SortItemAdded = true;
} }

View File

@@ -20,12 +20,12 @@ namespace AyaNova.DataList
//Defaults when none is specified (see DataListOptions for formats and notes) //Defaults when none is specified (see DataListOptions for formats and notes)
List<string> DefaultColumns { get; set; } List<string> DefaultColumns { get; set; }
List<string> DefaultSortBy { get; set; } Dictionary<string, string> DefaultSortBy { get; set; }
void SetListOptionDefaultsIfNecessary(DataListOptions listOptions); void SetListOptionDefaultsIfNecessary(DataListOptions listOptions);
Newtonsoft.Json.Linq.JArray GenerateListColumnsJSONFromListView(JArray listViewArray); Newtonsoft.Json.Linq.JArray GenerateListColumnsJSONFromListView(JArray listViewArray);
List<string> GetFieldListFromListView(JArray listViewArray); // List<string> GetFieldListFromListView(JArray listViewArray);