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 left join avendor on (auser.vendorid=avendor.id)"; 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, //NOTE: not technically an enum list but this will trigger datagrid at client to fetch roles for special handling EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(AuthorizationRoles).ToString()), SqlValueColumnName = "auser.roles" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "LastLogin", FieldKey = "lastlogin", UiFieldDataType = (int)UiFieldDataType.DateTime, SqlValueColumnName = "auser.lastlogin" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "Vendor", FieldKey = "uservendor", UiFieldDataType = (int)UiFieldDataType.Text, AyaObjectType = (int)AyaType.Vendor, SqlIdColumnName = "avendor.id", SqlValueColumnName = "avendor.name" }); } }//eoc }//eons