using System.Collections.Generic; using AyaNova.Biz; using AyaNova.Models; namespace AyaNova.DataList { internal class InsideUserDataList : DataListProcessingBase, IDataListInternalCriteria { 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); DefaultColumns = new List() { "name", "employeenumber", "active", "usertype", "lastlogin", "roles" }; DefaultSortBy = new Dictionary() { { "name", "+" } }; FieldDefinitions = new List(); FieldDefinitions.Add(new DataListFieldDefinition { TKey = "User", FieldKey = "name", AyaObjectType = (int)AyaType.User, UiFieldDataType = (int)UiFieldDataType.Text, SqlIdColumnName = "auser.id", SqlValueColumnName = "auser.name", IsRowId = true }); FieldDefinitions.Add(new DataListFieldDefinition { TKey = "UserEmployeeNumber", FieldKey = "employeenumber", UiFieldDataType = (int)UiFieldDataType.Text, SqlValueColumnName = "auser.employeenumber" }); FieldDefinitions.Add(new DataListFieldDefinition { TKey = "Active", FieldKey = "active", UiFieldDataType = (int)UiFieldDataType.Bool, SqlValueColumnName = "auser.active" }); FieldDefinitions.Add(new DataListFieldDefinition { TKey = "UserType", FieldKey = "usertype", UiFieldDataType = (int)UiFieldDataType.Enum, EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(UserType).ToString()), SqlValueColumnName = "auser.usertype" }); FieldDefinitions.Add(new DataListFieldDefinition { 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 DataListFieldDefinition { TKey = "LastLogin", FieldKey = "lastlogin", UiFieldDataType = (int)UiFieldDataType.DateTime, SqlValueColumnName = "auser.lastlogin" }); FieldDefinitions.Add(new DataListFieldDefinition { TKey = "Vendor", FieldKey = "uservendor", UiFieldDataType = (int)UiFieldDataType.Text, AyaObjectType = (int)AyaType.Vendor, SqlIdColumnName = "avendor.id", SqlValueColumnName = "avendor.name" }); } public List DataListInternalCriteria(long currentUserId, AuthorizationRoles userRoles, string clientCriteria) { List ret = new List(); DataListFilterOption FilterOption = new DataListFilterOption() { Column = "usertype" }; FilterOption.Items.Add(new DataListColumnFilter() { value = ((int)UserType.Customer).ToString(), op = DataListFilterComparisonOperator.NotEqual }); FilterOption.Items.Add(new DataListColumnFilter() { value = ((int)UserType.HeadOffice).ToString(), op = DataListFilterComparisonOperator.NotEqual }); ret.Add(FilterOption); return ret; } }//eoc }//eons