using System.Collections.Generic; using AyaNova.Biz; namespace AyaNova.DataList { internal interface IAyaDataList { //Unique key to identify this list string ListKey { get; set; } //sql query from fragment with table joins et string SQLFrom { get; set; } //List of fields for this object List FieldDefinitions { get; set; } //allowed roles to access the full list templated fields AuthorizationRoles FullListAllowedRoles { get; set; } //allowed roles to access mini list templated fields //generally this will be *any* because most forms will need to allow this for picklists such as usernames etc // but this is a safety valve for sensitive lists like financial reports where there is just no need for untrusted roles to see it AuthorizationRoles MiniListAllowedRoles { get; set; } //Default object type to open for rows of this list (use no object if no) AyaType DefaultListObjectType { get; set; } //Default list display template if none found in db or is invalid, this ensures the data will flow even if people fuck up the templates somehow string DefaultDataListDisplayTemplate { get; set; } Newtonsoft.Json.Linq.JArray GenerateMINIListColumnsJSON(); Newtonsoft.Json.Linq.JArray GenerateListColumnsJSONFromTemplate(string template); bool ValidateTemplate(string template); } }