using System.Collections.Generic; using Newtonsoft.Json.Linq; using AyaNova.Models; using AyaNova.Biz; namespace AyaNova.DataList { internal class ReminderDataList : AyaDataList, IAyaDataListViewServerCriteria { public ReminderDataList() { DefaultListObjectType = AyaType.Reminder; SQLFrom = "from areminder"; var RoleSet = BizRoles.GetRoleSet(DefaultListObjectType); AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change; //######## DEFAULT VIEW WHEN NO VIEW CHOSEN ############ dynamic dlistView = new JArray(); dynamic cm = new JObject(); cm.fld = "ReminderName"; dlistView.Add(cm); cm = new JObject(); cm.fld = "ReminderNotes"; dlistView.Add(cm); cm = new JObject(); cm.fld = "ReminderStopDate"; dlistView.Add(cm); cm = new JObject(); cm.fld = "ReminderStartDate"; 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 = "ReminderName", FieldKey = "ReminderName", AyaObjectType = (int)AyaType.Reminder, UiFieldDataType = (int)UiFieldDataType.Text, SqlIdColumnName = "areminder.id", SqlValueColumnName = "areminder.name", SqlColorColumnName = "areminder.color", IsRowId = true }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReminderNotes", FieldKey = "ReminderNotes", UiFieldDataType = (int)UiFieldDataType.Text, SqlValueColumnName = "areminder.notes" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReminderStartDate", FieldKey = "ReminderStartDate", UiFieldDataType = (int)UiFieldDataType.DateTime, SqlValueColumnName = "areminder.startdate" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReminderStopDate", FieldKey = "ReminderStopDate", UiFieldDataType = (int)UiFieldDataType.DateTime, SqlValueColumnName = "areminder.stopdate" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "Tags", FieldKey = "ReminderTags", UiFieldDataType = (int)UiFieldDataType.Tags, SqlValueColumnName = "areminder.tags" }); //META column FieldDefinitions.Add(new AyaDataListFieldDefinition { FieldKey = "metareminderuser", SqlIdColumnName = "areminder.userid", SqlValueColumnName = "areminder.userid", IsMeta = true }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReminderCustom1", FieldKey = "ReminderCustom1", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areminder.customfields" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReminderCustom2", FieldKey = "ReminderCustom2", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areminder.customfields" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReminderCustom3", FieldKey = "ReminderCustom3", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areminder.customfields" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReminderCustom4", FieldKey = "ReminderCustom4", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areminder.customfields" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReminderCustom5", FieldKey = "ReminderCustom5", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areminder.customfields" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReminderCustom6", FieldKey = "ReminderCustom6", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areminder.customfields" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReminderCustom7", FieldKey = "ReminderCustom7", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areminder.customfields" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReminderCustom8", FieldKey = "ReminderCustom8", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areminder.customfields" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReminderCustom9", FieldKey = "ReminderCustom9", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areminder.customfields" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReminderCustom10", FieldKey = "ReminderCustom10", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areminder.customfields" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReminderCustom11", FieldKey = "ReminderCustom11", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areminder.customfields" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReminderCustom12", FieldKey = "ReminderCustom12", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areminder.customfields" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReminderCustom13", FieldKey = "ReminderCustom13", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areminder.customfields" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReminderCustom14", FieldKey = "ReminderCustom14", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areminder.customfields" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReminderCustom15", FieldKey = "ReminderCustom15", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areminder.customfields" }); FieldDefinitions.Add(new AyaDataListFieldDefinition { TKey = "ReminderCustom16", FieldKey = "ReminderCustom16", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "areminder.customfields" }); } //Ensure only current user can fetch their reminders string IAyaDataListViewServerCriteria.ListViewServerCriteria(User user, AyContext ct) { return "[{\"fld\":\"metareminderuser\",\"filter\":{\"items\":[{\"op\":\"=\",\"value\":" + user.Id.ToString() + "}]}}]"; } }//eoc }//eons