using System.Collections.Generic; using Newtonsoft.Json.Linq; using AyaNova.Models; using AyaNova.Biz; namespace AyaNova.DataList { internal class ReviewDataList : AyaDataList, IAyaDataListViewServerCriteria { public ReviewDataList() { DefaultListObjectType = AyaType.Review; SQLFrom = "from areview left join auser uassto on (areview.userid=uassto.id) left join auser uassby on (areview.assignedbyuserid=uassby.id)"; var RoleSet = BizRoles.GetRoleSet(DefaultListObjectType); AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change; //######## DEFAULT VIEW WHEN NO VIEW CHOSEN ############ //Default ListView dynamic dlistView = new JArray(); dynamic cm = null; cm = new JObject(); cm.fld = "ReviewCompletedDate"; cm.sort = "-"; dlistView.Add(cm); cm = new JObject(); cm.fld = "ReviewDueDate"; cm.sort = "+"; dlistView.Add(cm); cm = new JObject(); cm.fld = "ReviewName"; dlistView.Add(cm); cm = new JObject(); cm.fld = "Object"; dlistView.Add(cm); cm = new JObject(); cm.fld = "AyaType"; dlistView.Add(cm); cm = new JObject(); cm.fld = "ReviewNotes"; dlistView.Add(cm); cm = new JObject(); cm.fld = "ReviewUserId"; dlistView.Add(cm); DefaultListView = dlistView.ToString(Newtonsoft.Json.Formatting.None); //NOTE: Due to the join, all the sql id and name fields that can conflict with the joined table need to be specified completely FieldDefinitions = new List(); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "Object", FieldKey = "Object", UiFieldDataType = (int)UiFieldDataType.Text, SqlIdColumnName = "areview.objectid", SqlValueColumnName = "AYGETNAME(areview.objectid, areview.objecttype)", SqlAyTypeColumnName = "areview.objecttype" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "AyaType", FieldKey = "AyaType", UiFieldDataType = (int)UiFieldDataType.Enum, EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(AyaType).ToString()), SqlValueColumnName = "areview.objecttype" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReviewName", FieldKey = "ReviewName", AyaObjectType = (int)AyaType.Review, UiFieldDataType = (int)UiFieldDataType.Text, SqlIdColumnName = "areview.id", SqlValueColumnName = "areview.name", IsRowId = true }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReviewNotes", FieldKey = "ReviewNotes", UiFieldDataType = (int)UiFieldDataType.Text, SqlValueColumnName = "areview.notes" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReviewDueDate", FieldKey = "ReviewDueDate", UiFieldDataType = (int)UiFieldDataType.DateTime, SqlValueColumnName = "areview.duedate" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReviewCompletedDate", FieldKey = "ReviewCompletedDate", UiFieldDataType = (int)UiFieldDataType.DateTime, SqlValueColumnName = "areview.completeddate" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReviewCompletionNotes", FieldKey = "ReviewCompletionNotes", UiFieldDataType = (int)UiFieldDataType.Text, SqlValueColumnName = "areview.completionnotes" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReviewUserId", FieldKey = "ReviewUserId", AyaObjectType = (int)AyaType.User, UiFieldDataType = (int)UiFieldDataType.Text, SqlIdColumnName = "uassto.id", SqlValueColumnName = "uassto.name" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReviewAssignedByUserId", FieldKey = "ReviewAssignedByUserId", AyaObjectType = (int)AyaType.User, UiFieldDataType = (int)UiFieldDataType.Text, SqlIdColumnName = "uassby.id", SqlValueColumnName = "uassby.name" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "Tags", FieldKey = "ReviewTags", UiFieldDataType = (int)UiFieldDataType.Tags, SqlValueColumnName = "areview.tags" }); //META userid column FieldDefinitions.Add(new AyaDataListFieldDefinition { FieldKey = "metareviewuser", SqlIdColumnName = "areview.userid", SqlValueColumnName = "areview.userid", IsMeta = true }); //META object id column FieldDefinitions.Add(new AyaDataListFieldDefinition { FieldKey = "metareviewobjectid", SqlIdColumnName = "areview.objectid", SqlValueColumnName = "areview.objectid", IsMeta = true }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReviewCustom1", FieldKey = "ReviewCustom1", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areview.customfields" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReviewCustom2", FieldKey = "ReviewCustom2", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areview.customfields" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReviewCustom3", FieldKey = "ReviewCustom3", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areview.customfields" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReviewCustom4", FieldKey = "ReviewCustom4", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areview.customfields" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReviewCustom5", FieldKey = "ReviewCustom5", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areview.customfields" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReviewCustom6", FieldKey = "ReviewCustom6", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areview.customfields" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReviewCustom7", FieldKey = "ReviewCustom7", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areview.customfields" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReviewCustom8", FieldKey = "ReviewCustom8", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areview.customfields" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReviewCustom9", FieldKey = "ReviewCustom9", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areview.customfields" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReviewCustom10", FieldKey = "ReviewCustom10", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areview.customfields" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReviewCustom11", FieldKey = "ReviewCustom11", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areview.customfields" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReviewCustom12", FieldKey = "ReviewCustom12", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areview.customfields" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReviewCustom13", FieldKey = "ReviewCustom13", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areview.customfields" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReviewCustom14", FieldKey = "ReviewCustom14", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areview.customfields" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReviewCustom15", FieldKey = "ReviewCustom15", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areview.customfields" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReviewCustom16", FieldKey = "ReviewCustom16", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areview.customfields" }); } string IAyaDataListViewServerCriteria.ListViewServerCriteria(User user, AyaNova.Models.AyContext ct) { var CurrentUserRoles = user.Roles; bool HasSupervisorRole = CurrentUserRoles.HasFlag(AuthorizationRoles.BizAdminFull) || CurrentUserRoles.HasFlag(AuthorizationRoles.DispatchFull) || CurrentUserRoles.HasFlag(AuthorizationRoles.InventoryFull) || CurrentUserRoles.HasFlag(AuthorizationRoles.SalesFull) || CurrentUserRoles.HasFlag(AuthorizationRoles.AccountingFull); if (!HasSupervisorRole) return "[{\"fld\":\"metareviewuser\",\"filter\":{\"items\":[{\"op\":\"=\",\"value\":" + user.Id.ToString() + "}]}}]"; return "[]";//this means effectively don't process this at all } }//eoc }//eons