using System; using System.Collections.Generic; namespace Umbraco.Cms.Core.Models { /// /// Represents a document. /// /// /// A document can be published, rendered by a template. /// public interface IContent : IContentBase { /// /// Gets or sets the content schedule /// ContentScheduleCollection ContentSchedule { get; set; } /// /// Gets or sets the template id used to render the content. /// int? TemplateId { get; set; } /// /// Gets a value indicating whether the content is published. /// /// The property tells you which version of the content is currently published. bool Published { get; set; } PublishedState PublishedState { get; set; } /// /// Gets a value indicating whether the content has been edited. /// /// Will return `true` once unpublished edits have been made after the version with has been published. bool Edited { get; set; } /// /// Gets the version identifier for the currently published version of the content. /// int PublishedVersionId { get; set; } /// /// Gets a value indicating whether the content item is a blueprint. /// bool Blueprint { get; set; } /// /// Gets the template id used to render the published version of the content. /// /// When editing the content, the template can change, but this will not until the content is published. int? PublishTemplateId { get; set; } /// /// Gets the name of the published version of the content. /// /// When editing the content, the name can change, but this will not until the content is published. string PublishName { get; set; } /// /// Gets the identifier of the user who published the content. /// int? PublisherId { get; set; } /// /// Gets the date and time the content was published. /// DateTime? PublishDate { get; set; } /// /// Gets a value indicating whether a culture is published. /// /// /// A culture becomes published whenever values for this culture are published, /// and the content published name for this culture is non-null. It becomes non-published /// whenever values for this culture are unpublished. /// A culture becomes published as soon as PublishCulture has been invoked, /// even though the document might not have been saved yet (and can have no identity). /// Does not support the '*' wildcard (returns false). /// bool IsCulturePublished(string culture); /// /// Gets the date a culture was published. /// DateTime? GetPublishDate(string culture); /// /// Gets a value indicated whether a given culture is edited. /// /// /// A culture is edited when it is available, and not published or published but /// with changes. /// A culture can be edited even though the document might now have been saved yet (and can have no identity). /// Does not support the '*' wildcard (returns false). /// bool IsCultureEdited(string culture); /// /// Gets the name of the published version of the content for a given culture. /// /// /// When editing the content, the name can change, but this will not until the content is published. /// When is null, gets the invariant /// language, which is the value of the property. /// string GetPublishName(string culture); /// /// Gets the published culture infos of the content. /// /// /// Because a dictionary key cannot be null this cannot get the invariant /// name, which must be get via the property. /// ContentCultureInfosCollection PublishCultureInfos { get; set; } /// /// Gets the published cultures. /// IEnumerable PublishedCultures { get; } /// /// Gets the edited cultures. /// IEnumerable EditedCultures { get; set; } /// /// Creates a deep clone of the current entity with its identity/alias and it's property identities reset /// /// IContent DeepCloneWithResetIdentities(); } }