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) {