using System.Collections.Generic; using Newtonsoft.Json.Linq; using AyaNova.Biz; namespace AyaNova.DataList { internal class ReviewDataList : AyaDataList, IAyaDataListViewServerCriteria { public ReviewDataList() { DefaultListObjectType = AyaType.Review; SQLFrom = "from areview left outer join auser on (areview.fromid=auser.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 = new JObject(); cm.fld = "ReviewName"; dlistView.Add(cm); cm = new JObject(); cm.fld = "ReviewDueDate"; dlistView.Add(cm); cm = new JObject(); cm.fld = "ReviewCompletedDate"; 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(); // TODO: have to figure out how to include name and openable link to object in reminder //or do I?... outstanding for sure //The only efficient way to do this would be a Function that is outer joined to fetch the names //maybe that's an option, look into a query that joins tables to Function //https://dba.stackexchange.com/a/194912 FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "AyaType", FieldKey = "ayatype", UiFieldDataType = (int)UiFieldDataType.Enum, EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(AyaType).ToString()), SqlValueColumnName = "afileattachment.AttachToObjectType" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReviewSubject", FieldKey = "ReviewSubject", AyaObjectType = (int)AyaType.Review, UiFieldDataType = (int)UiFieldDataType.Text, SqlIdColumnName = "areview.id", SqlValueColumnName = "areview.name", IsRowId = true }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReviewMessage", FieldKey = "ReviewMessage", UiFieldDataType = (int)UiFieldDataType.Text, SqlValueColumnName = "areview.notes" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReviewFromID", FieldKey = "ReviewFromID", AyaObjectType = (int)AyaType.User, UiFieldDataType = (int)UiFieldDataType.Text, SqlIdColumnName = "auser.id", SqlValueColumnName = "auser.name", IsRowId = false }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReviewSent", FieldKey = "ReviewSent", UiFieldDataType = (int)UiFieldDataType.DateTime, SqlValueColumnName = "areview.sent" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReviewReplied", FieldKey = "ReviewReplied", UiFieldDataType = (int)UiFieldDataType.Bool, SqlValueColumnName = "areview.replied" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReviewViewed", FieldKey = "ReviewViewed", UiFieldDataType = (int)UiFieldDataType.Bool, SqlValueColumnName = "areview.viewed" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "Tags", FieldKey = "ReviewTags", UiFieldDataType = (int)UiFieldDataType.Tags, SqlValueColumnName = "areview.tags" }); //META column FieldDefinitions.Add(new AyaDataListFieldDefinition { FieldKey = "metareviewto", SqlIdColumnName = "areview.toid", SqlValueColumnName = "areview.toid", 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(long userId) { return "[{\"fld\":\"metareviewto\",\"filter\":{\"items\":[{\"op\":\"=\",\"value\":" + userId.ToString() + "}]}}]"; } }//eoc }//eons