Files
Umbraco-CMS/src/Umbraco.Infrastructure/Persistence/Repositories/IContentRepository.cs
Bjarke Berg bf1784f9d1 Merge remote-tracking branch 'origin/v8/dev' into netcore/dev
# Conflicts:
#	src/Umbraco.Core/ContentExtensions.cs
#	src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DocumentRepository.cs
2020-04-17 11:43:04 +02:00

85 lines
3.0 KiB
C#

using System;
using System.Collections.Generic;
using Umbraco.Core.Models;
using Umbraco.Core.Models.Entities;
using Umbraco.Core.Persistence.DatabaseModelDefinitions;
using Umbraco.Core.Persistence.Querying;
using Umbraco.Core.Services;
namespace Umbraco.Core.Persistence.Repositories
{
/// <summary>
/// Defines the base implementation of a repository for content items.
/// </summary>
public interface IContentRepository<in TId, TEntity> : IReadWriteQueryRepository<TId, TEntity>
where TEntity : IUmbracoEntity
{
/// <summary>
/// Gets versions.
/// </summary>
/// <remarks>Current version is first, and then versions are ordered with most recent first.</remarks>
IEnumerable<TEntity> GetAllVersions(int nodeId);
/// <summary>
/// Gets versions.
/// </summary>
/// <remarks>Current version is first, and then versions are ordered with most recent first.</remarks>
IEnumerable<TEntity> GetAllVersionsSlim(int nodeId, int skip, int take);
/// <summary>
/// Gets version identifiers.
/// </summary>
/// <remarks>Current version is first, and then versions are ordered with most recent first.</remarks>
IEnumerable<int> GetVersionIds(int id, int topRows);
/// <summary>
/// Gets a version.
/// </summary>
TEntity GetVersion(int versionId);
/// <summary>
/// Deletes a version.
/// </summary>
void DeleteVersion(int versionId);
/// <summary>
/// Deletes all versions older than a date.
/// </summary>
void DeleteVersions(int nodeId, DateTime versionDate);
/// <summary>
/// Gets the recycle bin identifier.
/// </summary>
int RecycleBinId { get; }
/// <summary>
/// Gets the recycle bin content.
/// </summary>
IEnumerable<TEntity> GetRecycleBin();
/// <summary>
/// Gets the count of content items of a given content type.
/// </summary>
int Count(string contentTypeAlias = null);
/// <summary>
/// Gets the count of child content items of a given parent content, of a given content type.
/// </summary>
int CountChildren(int parentId, string contentTypeAlias = null);
/// <summary>
/// Gets the count of descendant content items of a given parent content, of a given content type.
/// </summary>
int CountDescendants(int parentId, string contentTypeAlias = null);
/// <summary>
/// Gets paged content items.
/// </summary>
/// <remarks>Here, <paramref name="filter"/> can be null but <paramref name="ordering"/> cannot.</remarks>
IEnumerable<TEntity> GetPage(IQuery<TEntity> query, long pageIndex, int pageSize, out long totalRecords,
IQuery<TEntity> filter, Ordering ordering);
ContentDataIntegrityReport CheckDataIntegrity(ContentDataIntegrityReportOptions options);
}
}