using System; using System.Collections.Generic; using Umbraco.Core.Models; using Umbraco.Core.Models.Membership; namespace Umbraco.Core.Persistence.Repositories { public interface IDocumentRepository : IContentRepository, IReadRepository { /// /// Clears the publishing schedule for all entries having an a date before (lower than, or equal to) a specified date. /// void ClearSchedule(DateTime date); /// /// Gets objects having an expiration date before (lower than, or equal to) a specified date. /// /// /// The content returned from this method may be culture variant, in which case the resulting should be queried /// for which culture(s) have been scheduled. /// IEnumerable GetContentForExpiration(DateTime date); /// /// Gets objects having a release date before (lower than, or equal to) a specified date. /// /// /// The content returned from this method may be culture variant, in which case the resulting should be queried /// for which culture(s) have been scheduled. /// IEnumerable GetContentForRelease(DateTime date); /// /// Get the count of published items /// /// /// /// We require this on the repo because the IQuery{IContent} cannot supply the 'newest' parameter /// int CountPublished(string contentTypeAlias = null); bool IsPathPublished(IContent content); /// /// Used to bulk update the permissions set for a content item. This will replace all permissions /// assigned to an entity with a list of user id & permission pairs. /// /// void ReplaceContentPermissions(EntityPermissionSet permissionSet); /// /// Assigns a single permission to the current content item for the specified user group ids /// /// /// /// void AssignEntityPermission(IContent entity, char permission, IEnumerable groupIds); /// /// Gets the explicit list of permissions for the content item /// /// /// EntityPermissionCollection GetPermissionsForEntity(int entityId); /// /// Used to add/update a permission for a content item /// /// void AddOrUpdatePermissions(ContentPermissionSet permission); } }