diff --git a/server/AyaNova/PickList/AyaPickList.cs b/server/AyaNova/PickList/AyaPickList.cs
index 15ca5336..5b871afd 100644
--- a/server/AyaNova/PickList/AyaPickList.cs
+++ b/server/AyaNova/PickList/AyaPickList.cs
@@ -1,7 +1,6 @@
using System.Collections.Generic;
using AyaNova.Biz;
using Newtonsoft.Json.Linq;
-
namespace AyaNova.PickList
{
///
@@ -10,7 +9,7 @@ namespace AyaNova.PickList
internal abstract class AyaPickList : IAyaPickList
{
public AyaPickList()
- {}
+ { }
public string SQLFrom { get; set; }
public List ColumnDefinitions { get; set; }
public AuthorizationRoles AllowedRoles { get; set; }
@@ -18,7 +17,7 @@ namespace AyaNova.PickList
public string DefaultTemplate { get; set; }
//return array of field keys in list view
public List GetFieldListFromTemplate(JArray template)
- {
+ {
List ret = new List();
for (int i = 0; i < template.Count; i++)
{
diff --git a/server/AyaNova/PickList/AyaPickListFieldDefinition.cs b/server/AyaNova/PickList/AyaPickListFieldDefinition.cs
index 0e44cec3..c64ec9c1 100644
--- a/server/AyaNova/PickList/AyaPickListFieldDefinition.cs
+++ b/server/AyaNova/PickList/AyaPickListFieldDefinition.cs
@@ -1,11 +1,8 @@
using AyaNova.Biz;
-using System.ComponentModel.DataAnnotations;
using Newtonsoft.Json;
-
namespace AyaNova.PickList
{
-
- //This class defines a field used for returning data in list format for UI pick lists
+ //This class defines a field used for pick list templating querying processing editing and returning
public class AyaPickListFieldDefinition
{
//CLIENT / SERVER Unique identifier used at BOTH client and server
@@ -27,9 +24,7 @@ namespace AyaNova.PickList
{
//most common defaults
IsRowId = false;
- IsActiveColumn = false;
- // AyaObjectType = (int)AyaType.NoType;
-
+ IsActiveColumn = false;
}
//Get column to query for display name or use FieldName if there is no difference
@@ -44,11 +39,5 @@ namespace AyaNova.PickList
return SqlValueColumnName;
}
}
-
- // public bool HasIdColumn()
- // {
- // return !string.IsNullOrWhiteSpace(SqlIdColumnName);
- // }
-
}
}
\ No newline at end of file
diff --git a/server/AyaNova/PickList/PickListFactory.cs b/server/AyaNova/PickList/PickListFactory.cs
index 44b40d12..09468aba 100644
--- a/server/AyaNova/PickList/PickListFactory.cs
+++ b/server/AyaNova/PickList/PickListFactory.cs
@@ -13,8 +13,11 @@ namespace AyaNova.PickList
{
switch (ayaType)
{
+ //CoreBizObject add here
case AyaType.Widget:
return new WidgetPickList() as IAyaPickList;
+ case AyaType.User:
+ return new UserPickList() as IAyaPickList;
}
return null;
}
@@ -33,9 +36,7 @@ namespace AyaNova.PickList
TranslationKeysToFetch.Add(name);
ret.Add(new NameIdItem() { Name = name, Id = (long)t });
}
-
}
-
var LT = TranslationBiz.GetSubsetStaticAsync(TranslationKeysToFetch, TranslationId).Result;
foreach (NameIdItem i in ret)
{
@@ -43,7 +44,5 @@ namespace AyaNova.PickList
}
return ret;
}
-
-
}//eoc
}//eons
\ No newline at end of file
diff --git a/server/AyaNova/PickList/UserPickList.cs b/server/AyaNova/PickList/UserPickList.cs
index a04918fb..7682b172 100644
--- a/server/AyaNova/PickList/UserPickList.cs
+++ b/server/AyaNova/PickList/UserPickList.cs
@@ -11,11 +11,8 @@ namespace AyaNova.PickList
DefaultListObjectType = AyaType.User;
SQLFrom = "from auser";
AllowedRoles = BizRoles.GetRoleSet(DefaultListObjectType).Select;
-
- //Default template
dynamic dTemplate = new JArray();
-
dynamic cm = new JObject();
cm.fld = "username";
dTemplate.Add(cm);
@@ -30,9 +27,8 @@ namespace AyaNova.PickList
base.DefaultTemplate = dTemplate.ToString(Newtonsoft.Json.Formatting.None);
- //NOTE: Due to the join, all the sql id and name fields that can conflict with the joined (in this case User) table need to be specified completely
+ //NOTE: Due to the join, all the sql id and name fields that can conflict with the joined table need to be specified completely
ColumnDefinitions = new List();
-
ColumnDefinitions.Add(new AyaPickListFieldDefinition
{
LtKey = "Active",
@@ -41,7 +37,6 @@ namespace AyaNova.PickList
SqlValueColumnName = "auser.active",
IsActiveColumn = true
});
-
ColumnDefinitions.Add(new AyaPickListFieldDefinition
{
LtKey = "UserName",
@@ -51,7 +46,6 @@ namespace AyaNova.PickList
SqlValueColumnName = "auser.name",
IsRowId = true
});
-
ColumnDefinitions.Add(new AyaPickListFieldDefinition
{
LtKey = "UserEmployeeNumber",
@@ -60,7 +54,6 @@ namespace AyaNova.PickList
SqlValueColumnName = "auser.employeenumber"
});
-
ColumnDefinitions.Add(new AyaPickListFieldDefinition
{
LtKey = "Tags",
@@ -68,8 +61,6 @@ namespace AyaNova.PickList
ColumnDataType = UiFieldDataType.Tags,
SqlValueColumnName = "auser.tags"
});
-
-
}
}//eoc
}//eons
\ No newline at end of file
diff --git a/server/AyaNova/PickList/WidgetPickList.cs b/server/AyaNova/PickList/WidgetPickList.cs
index e5129ccd..d6b99fca 100644
--- a/server/AyaNova/PickList/WidgetPickList.cs
+++ b/server/AyaNova/PickList/WidgetPickList.cs
@@ -7,7 +7,6 @@ namespace AyaNova.PickList
{
public WidgetPickList()
{
-
DefaultListObjectType = AyaType.Widget;
SQLFrom = "from awidget left outer join auser on (awidget.userid=auser.id)";
AllowedRoles = BizRoles.GetRoleSet(DefaultListObjectType).Select;
@@ -31,8 +30,6 @@ namespace AyaNova.PickList
//NOTE: Due to the join, all the sql id and name fields that can conflict with the joined (in this case User) table need to be specified completely
ColumnDefinitions = new List();
- //DEPRECATED: FieldDefinitions.Add(new AyaPickListFieldDefinition { FieldKey = "df", AyaObjectType = (int)AyaType.Widget, SqlIdColumnName = "awidget.id", IsFilterable = false, IsSortable = false, });
-
ColumnDefinitions.Add(new AyaPickListFieldDefinition
{
LtKey = "Active",
@@ -77,8 +74,6 @@ namespace AyaNova.PickList
ColumnDataType = UiFieldDataType.Tags,
SqlValueColumnName = "awidget.tags"
});
-
-
}
}//eoc
}//eons
\ No newline at end of file
diff --git a/server/AyaNova/biz/AyaFormFieldDefinitions.cs b/server/AyaNova/biz/AyaFormFieldDefinitions.cs
index 7f3b97d8..3b503c55 100644
--- a/server/AyaNova/biz/AyaFormFieldDefinitions.cs
+++ b/server/AyaNova/biz/AyaFormFieldDefinitions.cs
@@ -20,6 +20,7 @@ namespace AyaNova.Biz
{
get
{
+ //CoreBizObject add here
List l = new List{
AyaType.Widget.ToString(),AyaType.User.ToString()
};
@@ -40,7 +41,7 @@ namespace AyaNova.Biz
***************************** Otherwise the hidden field can't be set and the object can't be saved EVER
*/
List l = new List();
-
+ //CoreBizObject add here
if (key == AyaType.Widget.ToString())
{
diff --git a/server/AyaNova/biz/AyaType.cs b/server/AyaNova/biz/AyaType.cs
index f2cd9e38..f78977fb 100644
--- a/server/AyaNova/biz/AyaType.cs
+++ b/server/AyaNova/biz/AyaType.cs
@@ -6,13 +6,17 @@ namespace AyaNova.Biz
///
public enum AyaType : int
{
- //COREBIZOBJECT attribute must be set on objects that are:
- //Attachable objects can have attachments,
- //wikiable objects can have a wiki
- //reviewable objects can have a review which is basically the same as a Reminder but with an object attached (was follow up schedmarker in v7)
- //PIckList-able (has picklist template)
- //Pretty much everything that represents some kind of real world object is wikiable or attachable as long as it has an ID and a type
- //exceptions would be utility type objects like datalistview, formcustom etc that are not
+ //COREBIZOBJECT attribute must be set on objects that are:
+ //Attachable objects can have attachments,
+ //wikiable objects can have a wiki
+ //reviewable objects can have a review which is basically the same as a Reminder but with an object attached (was follow up schedmarker in v7)
+ //PIckList-able (has picklist template)
+ //Pretty much everything that represents some kind of real world object is wikiable or attachable as long as it has an ID and a type
+ //exceptions would be utility type objects like datalistview, formcustom etc that are not
+
+ //NOTE: NEW CORE OBJECTS - All areas of server code that require adding any new core objects have been tagged with the following comment:
+ //CoreBizObject add here
+ //Search for that and you will see all areas that need coding for the new object
NoType = 0,
Global = 1,
diff --git a/server/AyaNova/biz/BizObjectExistsInDatabase.cs b/server/AyaNova/biz/BizObjectExistsInDatabase.cs
index f0457bad..51c777af 100644
--- a/server/AyaNova/biz/BizObjectExistsInDatabase.cs
+++ b/server/AyaNova/biz/BizObjectExistsInDatabase.cs
@@ -30,6 +30,7 @@ namespace AyaNova.Biz
}
switch (aytype)
{
+ //CoreBizObject add here
case AyaType.User:
return await ct.User.AnyAsync(m => m.Id == id);
case AyaType.Widget:
diff --git a/server/AyaNova/biz/BizObjectFactory.cs b/server/AyaNova/biz/BizObjectFactory.cs
index 6e86f435..54b7c5ec 100644
--- a/server/AyaNova/biz/BizObjectFactory.cs
+++ b/server/AyaNova/biz/BizObjectFactory.cs
@@ -23,6 +23,7 @@ namespace AyaNova.Biz
{
switch (aytype)
{
+ //CoreBizObject add here
case AyaType.User:
return new UserBiz(dbcontext, userId, ServerBootConfig.AYANOVA_DEFAULT_TRANSLATION_ID, roles);
case AyaType.Widget:
diff --git a/server/AyaNova/biz/BizObjectNameFetcherDirect.cs b/server/AyaNova/biz/BizObjectNameFetcherDirect.cs
index b0038ad9..8ea9b338 100644
--- a/server/AyaNova/biz/BizObjectNameFetcherDirect.cs
+++ b/server/AyaNova/biz/BizObjectNameFetcherDirect.cs
@@ -17,6 +17,7 @@ namespace AyaNova.Biz
{
string TABLE = string.Empty;
string COLUMN = "name";
+ //CoreBizObject add here
switch (aytype)
{
case AyaType.User:
diff --git a/server/AyaNova/biz/BizRoles.cs b/server/AyaNova/biz/BizRoles.cs
index b430e9bd..9d417580 100644
--- a/server/AyaNova/biz/BizRoles.cs
+++ b/server/AyaNova/biz/BizRoles.cs
@@ -29,6 +29,7 @@ namespace AyaNova.Biz
//DELETE = There is no specific delete right for now though it's checked for by routes in Authorized.cs in case we want to add it in future as a separate right from create.
#region All roles initialization
+ //CoreBizObject add here
////////////////////////////////////////////////////////////
//USER
@@ -189,7 +190,7 @@ namespace AyaNova.Biz
//ONGOING VALIDATION TO CATCH MISMATCH WHEN NEW ROLES ADDED (wont' catch changes to existing unfortunately)
//var lastRoles = "{\"User\":{\"Change\":2,\"ReadFullRecord\":1},\"UserOptions\":{\"Change\":2,\"ReadFullRecord\":1},\"Widget\":{\"Change\":34,\"ReadFullRecord\":17},\"ServerState\":{\"Change\":16384,\"ReadFullRecord\":131071},\"License\":{\"Change\":16386,\"ReadFullRecord\":8193},\"LogFile\":{\"Change\":0,\"ReadFullRecord\":24576},\"JobOperations\":{\"Change\":16384,\"ReadFullRecord\":8195},\"AyaNova7Import\":{\"Change\":16384,\"ReadFullRecord\":0},\"Metrics\":{\"Change\":0,\"ReadFullRecord\":24576},\"Translation\":{\"Change\":16386,\"ReadFullRecord\":131071},\"DataListView\":{\"Change\":2,\"ReadFullRecord\":131071},\"FormCustom\":{\"Change\":2,\"ReadFullRecord\":131071}}";
var lastRoles = "{\"User\":{\"Change\":2,\"ReadFullRecord\":1,\"Select\":131071},\"UserOptions\":{\"Change\":2,\"ReadFullRecord\":1,\"Select\":0},\"Widget\":{\"Change\":34,\"ReadFullRecord\":17,\"Select\":131071},\"ServerState\":{\"Change\":16384,\"ReadFullRecord\":131071,\"Select\":0},\"License\":{\"Change\":16386,\"ReadFullRecord\":8193,\"Select\":0},\"LogFile\":{\"Change\":0,\"ReadFullRecord\":24576,\"Select\":0},\"JobOperations\":{\"Change\":16384,\"ReadFullRecord\":8195,\"Select\":0},\"AyaNova7Import\":{\"Change\":16384,\"ReadFullRecord\":0,\"Select\":0},\"Metrics\":{\"Change\":0,\"ReadFullRecord\":24576,\"Select\":0},\"Translation\":{\"Change\":16386,\"ReadFullRecord\":131071,\"Select\":0},\"DataListView\":{\"Change\":2,\"ReadFullRecord\":131071,\"Select\":0},\"FormCustom\":{\"Change\":2,\"ReadFullRecord\":131071,\"Select\":0},\"PickListTemplate\":{\"Change\":2,\"ReadFullRecord\":131071,\"Select\":131071}}";
-
+
Dictionary lastRolesDeserialized = Newtonsoft.Json.JsonConvert.DeserializeObject>(lastRoles);
if (lastRolesDeserialized.Count != roles.Count)
{