diff --git a/server/AyaNova/DataList/InsideUserDataList.cs b/server/AyaNova/DataList/InsideUserDataList.cs new file mode 100644 index 00000000..358ab47e --- /dev/null +++ b/server/AyaNova/DataList/InsideUserDataList.cs @@ -0,0 +1,116 @@ +using System.Collections.Generic; +using Newtonsoft.Json.Linq; +using AyaNova.Biz; +namespace AyaNova.DataList +{ + internal class InsideUserDataList : AyaDataList + { + + public InsideUserDataList() + { + DefaultListObjectType = AyaType.User; + SQLFrom = "from auser"; + var RoleSet = BizRoles.GetRoleSet(DefaultListObjectType); + AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change; + + //Default ListView + dynamic dlistView = new JArray(); + + dynamic cm = new JObject(); + cm.fld = "name"; + cm.sort = "+"; + dlistView.Add(cm); + + cm = new JObject(); + cm.fld = "employeenumber"; + dlistView.Add(cm); + + cm = new JObject(); + cm.fld = "active"; + dlistView.Add(cm); + + cm = new JObject(); + cm.fld = "usertype"; + dlistView.Add(cm); + + cm = new JObject(); + cm.fld = "lastlogin"; + dlistView.Add(cm); + + + cm = new JObject(); + cm.fld = "roles"; + dlistView.Add(cm); + + DefaultListView = dlistView.ToString(Newtonsoft.Json.Formatting.None); + + /* + Id = z.Id, + Active = z.Active, + Name = z.Name, + Roles = z.Roles, + UserType = z.UserType, + EmployeeNumber = z.EmployeeNumber, + LastLogin = z.LastLogin + */ + + //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 + FieldDefinitions = new List(); + //DPRECATED FieldDefinitions.Add(new AyaDataListFieldDefinition { FieldKey = "df", AyaObjectType = (int)AyaType.User, SqlIdColumnName = "auser.id" }); + FieldDefinitions.Add(new AyaDataListFieldDefinition + { + TKey = "User", + FieldKey = "name", + AyaObjectType = (int)AyaType.User, + UiFieldDataType = (int)UiFieldDataType.Text, + SqlIdColumnName = "auser.id", + SqlValueColumnName = "auser.name", + IsRowId = true + }); + + FieldDefinitions.Add(new AyaDataListFieldDefinition + { + TKey = "UserEmployeeNumber", + FieldKey = "employeenumber", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "auser.employeenumber" + }); + + + FieldDefinitions.Add(new AyaDataListFieldDefinition + { + TKey = "Active", + FieldKey = "active", + UiFieldDataType = (int)UiFieldDataType.Bool, + SqlValueColumnName = "auser.active" + }); + + FieldDefinitions.Add(new AyaDataListFieldDefinition + { + TKey = "UserType", + FieldKey = "usertype", + UiFieldDataType = (int)UiFieldDataType.Enum, + EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(UserType).ToString()), + SqlValueColumnName = "auser.usertype" + }); + + FieldDefinitions.Add(new AyaDataListFieldDefinition + { + TKey = "AuthorizationRoles", + FieldKey = "roles", + UiFieldDataType = (int)UiFieldDataType.Roles, + SqlValueColumnName = "auser.roles" + }); + + FieldDefinitions.Add(new AyaDataListFieldDefinition + { + TKey = "LastLogin", + FieldKey = "lastlogin", + UiFieldDataType = (int)UiFieldDataType.DateTime, + SqlValueColumnName = "auser.lastlogin" + }); + + + } + }//eoc +}//eons \ No newline at end of file