diff --git a/server/AyaNova/DataList/AyaDataList.cs b/server/AyaNova/DataList/AyaDataList.cs
new file mode 100644
index 00000000..edb836d0
--- /dev/null
+++ b/server/AyaNova/DataList/AyaDataList.cs
@@ -0,0 +1,58 @@
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using AyaNova.Biz;
+
+namespace AyaNova.DataList
+{
+
+ ///
+ /// DataList object base class
+ ///
+ internal abstract class AyaDataList : IAyaDataList
+ {
+
+ internal AyaDataList()
+ {
+
+ }
+
+ // private string _listKey = string.Empty;
+ // public string ListKey
+ // {
+ // get
+ // {
+ // return _listKey;
+ // }
+ // set
+ // {
+ // _listKey = value;
+ // }
+ // }
+
+ //private readonly string _sqlFrom = string.Empty;
+ public string SQLFrom { get; set; }
+
+ // private readonly List _fieldDefinitions = new List();
+ public List FieldDefinitions { get; set; }
+
+ public AuthorizationRoles AllowedRoles { get; set; }
+
+ public AyaType DefaultListObjectType { get; set; }
+
+ public string ListKey { get; set; }
+
+ public string GenerateMINIListColumnsJSON()
+ {
+ throw new System.NotImplementedException();
+ }
+
+ public string GenerateListColumnsJSONFromTemplate(string template)
+ {
+ throw new System.NotImplementedException();
+ }
+ }//eoc
+
+}//eons
\ No newline at end of file
diff --git a/server/AyaNova/DataList/IAyaDataList.cs b/server/AyaNova/DataList/IAyaDataList.cs
index 9816384b..23595fc8 100644
--- a/server/AyaNova/DataList/IAyaDataList.cs
+++ b/server/AyaNova/DataList/IAyaDataList.cs
@@ -5,19 +5,23 @@ namespace AyaNova.DataList
internal interface IAyaDataList
{
//Unique key to identify this list
- string ListKey { get; }
+ string ListKey { get; set; }
//sql query from fragment with table joins et
- string SQLFrom { get; }
+ string SQLFrom { get; set; }
//List of fields for this object
- List FieldDefinitions { get; }
+ List FieldDefinitions { get; set; }
//allowed roles to access this list
- AuthorizationRoles AllowedRoles { get; }
+ AuthorizationRoles AllowedRoles { get; set; }
//Default object type to open for rows of this list (use no object if no)
- AyaType DefaultListObjectType { get; }
+ AyaType DefaultListObjectType { get; set; }
+
+
+ string GenerateMINIListColumnsJSON();
+ string GenerateListColumnsJSONFromTemplate(string template);
}
}
\ No newline at end of file
diff --git a/server/AyaNova/DataList/TestWidgetUserEmailDataList.cs b/server/AyaNova/DataList/TestWidgetUserEmailDataList.cs
index e50cc2d5..9804dd40 100644
--- a/server/AyaNova/DataList/TestWidgetUserEmailDataList.cs
+++ b/server/AyaNova/DataList/TestWidgetUserEmailDataList.cs
@@ -2,7 +2,7 @@ using System.Collections.Generic;
using AyaNova.Biz;
namespace AyaNova.DataList
{
- internal class TestWidgetUserEmailDataList : IAyaDataList
+ internal class TestWidgetUserEmailDataList : AyaDataList
{
/*
Select awidget.id, awidget.name, auser.name, auser.id, auseroptions.emailaddress
@@ -11,55 +11,49 @@ namespace AyaNova.DataList
left outer join auseroptions on (auser.id=auseroptions.userid)
order by auseroptions.emailaddress desc
*/
- public string ListKey => nameof(TestWidgetUserEmailDataList);
- public string SQLFrom => "from awidget left outer join auser on (awidget.userid=auser.id) left outer join auseroptions on (auser.id=auseroptions.userid)";
- public List FieldDefinitions
+ public TestWidgetUserEmailDataList()
{
- get
+ ListKey = nameof(TestWidgetUserEmailDataList);
+ SQLFrom = "from awidget left outer join auser on (awidget.userid=auser.id) left outer join auseroptions on (auser.id=auseroptions.userid)";
+ AllowedRoles = AuthorizationRoles.AllInternalStaff;//anyone but clients and subcontractors (just for test)
+ DefaultListObjectType = AyaType.Widget;
+
+ FieldDefinitions = new List();
+ FieldDefinitions.Add(new AyaDataListFieldDefinition { FieldKey = "df", AyaObjectType = (int)AyaType.Widget, SqlIdColumnName = "awidget.id" });
+ FieldDefinitions.Add(new AyaDataListFieldDefinition
{
- List l = new List();
- l.Add(new AyaDataListFieldDefinition { FieldKey = "df", AyaObjectType = (int)AyaType.Widget, SqlIdColumnName = "awidget.id" });
- l.Add(new AyaDataListFieldDefinition
- {
- FieldKey = "widgetname",
- LtKey = "WidgetName",
- UiFieldDataType = (int)AyaUiFieldDataType.Text,
- AyaObjectType = (int)AyaType.Widget,
- SqlIdColumnName = "awidget.id",
- SqlValueColumnName = "awidget.name"
- });
- l.Add(new AyaDataListFieldDefinition
- {
- FieldKey = "username",
- LtKey = "User",
- UiFieldDataType = (int)AyaUiFieldDataType.Text,
- AyaObjectType = (int)AyaType.User,
- SqlIdColumnName = "auser.id",
- SqlValueColumnName = "auser.name"
- });
- l.Add(new AyaDataListFieldDefinition
- {
- LtKey = "UserEmailAddress",
- FieldKey = "emailaddress",
- SqlValueColumnName = "auseroptions.emailaddress",
- UiFieldDataType = (int)AyaUiFieldDataType.EmailAddress
- });
- l.Add(new AyaDataListFieldDefinition
- {
- LtKey = "Active",
- FieldKey = "widgetactive",
- SqlValueColumnName = "awidget.active",
- UiFieldDataType = (int)AyaUiFieldDataType.Bool
- });
- return l;
- }
+ FieldKey = "widgetname",
+ LtKey = "WidgetName",
+ UiFieldDataType = (int)AyaUiFieldDataType.Text,
+ AyaObjectType = (int)AyaType.Widget,
+ SqlIdColumnName = "awidget.id",
+ SqlValueColumnName = "awidget.name"
+ });
+ FieldDefinitions.Add(new AyaDataListFieldDefinition
+ {
+ FieldKey = "username",
+ LtKey = "User",
+ UiFieldDataType = (int)AyaUiFieldDataType.Text,
+ AyaObjectType = (int)AyaType.User,
+ SqlIdColumnName = "auser.id",
+ SqlValueColumnName = "auser.name"
+ });
+ FieldDefinitions.Add(new AyaDataListFieldDefinition
+ {
+ LtKey = "UserEmailAddress",
+ FieldKey = "emailaddress",
+ SqlValueColumnName = "auseroptions.emailaddress",
+ UiFieldDataType = (int)AyaUiFieldDataType.EmailAddress
+ });
+ FieldDefinitions.Add(new AyaDataListFieldDefinition
+ {
+ LtKey = "Active",
+ FieldKey = "widgetactive",
+ SqlValueColumnName = "awidget.active",
+ UiFieldDataType = (int)AyaUiFieldDataType.Bool
+ });
}
-
- public AuthorizationRoles AllowedRoles => AuthorizationRoles.AllInternalStaff;//anyone but clients and subcontractors (just for test)
- public AyaType DefaultListObjectType => AyaType.Widget;
-
- }
-
-}
\ No newline at end of file
+ }//eoc
+}//eons
\ No newline at end of file
diff --git a/server/AyaNova/biz/WidgetBiz.cs b/server/AyaNova/biz/WidgetBiz.cs
index 8358eb4e..1372fe78 100644
--- a/server/AyaNova/biz/WidgetBiz.cs
+++ b/server/AyaNova/biz/WidgetBiz.cs
@@ -467,7 +467,7 @@ namespace AyaNova.Biz
qWhere = DataListSqlFilterCriteriaBuilder.DataFilterToSQLCriteria(TheFilter, DataList.FieldDefinitions, UserId);
//ORDER BY CLAUSE - SORT
//BUILD ORDER BY AND APPEND IT
- qOrderBy = SqlFilterOrderByBuilder.DataFilterToSQLOrderBy(TheFilter);
+ qOrderBy = DataListSqlFilterOrderByBuilder.DataFilterToSQLOrderBy(TheFilter);
}
//LIMIT AND OFFSET CLAUSE - PAGING