using System.Collections.Generic; using System.Runtime.Serialization; using Umbraco.Core.Models.EntityBase; namespace Umbraco.Core.Models { /// /// Defines a Macro /// internal interface IMacro : IAggregateRoot { /// /// Gets or sets the alias of the Macro /// [DataMember] string Alias { get; set; } /// /// Gets or sets the name of the Macro /// [DataMember] string Name { get; set; } /// /// Gets or sets a boolean indicating whether the Macro can be used in an Editor /// [DataMember] bool UseInEditor { get; set; } /// /// Gets or sets the Cache Duration for the Macro /// [DataMember] int CacheDuration { get; set; } /// /// Gets or sets a boolean indicating whether the Macro should be Cached by Page /// [DataMember] bool CacheByPage { get; set; } /// /// Gets or sets a boolean indicating whether the Macro should be Cached Personally /// [DataMember] bool CacheByMember { get; set; } /// /// Gets or sets a boolean indicating whether the Macro should be rendered in an Editor /// [DataMember] bool DontRender { get; set; } /// /// Gets or sets the path to the script file in use /// /// Optional: Can only be one of three Script, Python or Xslt [DataMember] string ScriptFile { get; set; } /// /// Gets or sets the name of the assembly, which should be used by the Macro /// /// Will usually only be filled if the ScriptFile is a Usercontrol [DataMember] string ScriptAssembly { get; set; } /// /// Gets or set the path to the Python file in use /// /// Optional: Can only be one of three Script, Python or Xslt [DataMember] string Python { get; set; } /// /// Gets or sets the path to the Xslt file in use /// /// Optional: Can only be one of three Script, Python or Xslt [DataMember] string Xslt { get; set; } /// /// Gets or sets a list of Macro Properties /// [DataMember] List Properties { get; set; } /// /// Returns an enum based on the properties on the Macro /// /// MacroTypes MacroType(); } }