Class ContentProvider
The base class for Content Provider.
Implements
Namespace: EPiServer.Core
Assembly: EPiServer.dll
Version: 8.11.0Syntax
public abstract class ContentProvider : ProviderBase, IContentResolver
Remarks
A Custom Content Provider registered with EPiServer must inherit from this base class. The ContentProviderBase class provides many services for the custom content provider, such as caching, but it is possible for the custom Content Provider to override most of the default implementations.
Constructors
ContentProvider()
Initializes a new instance of the ContentProvider class.
Declaration
public ContentProvider()
ContentProvider(ContentFactory, ServiceAccessor<IContentTypeRepository>, TemplateResolver, UrlSegmentHandler, ILanguageBranchRepository, IFolderIDGenerator, LanguageSelectorFactory, IContentCopyHandler, IValidationService)
Initializes a new instance of the ContentProvider class.
Declaration
[Obsolete("This constructor has been replaced, please use parameterless constructor or update your dependency.")]
protected ContentProvider(ContentFactory contentFactory, ServiceAccessor<IContentTypeRepository> contentTypeRepositoryAccessor, TemplateResolver templateResolver, UrlSegmentHandler urlSegmentHandler, ILanguageBranchRepository languageBranchRepository, IFolderIDGenerator folderIdGenerator, LanguageSelectorFactory languageSelectorFactory, IContentCopyHandler contentCopyHandler, IValidationService validationService)
Parameters
Type | Name | Description |
---|---|---|
ContentFactory | contentFactory | The content factory. |
ServiceAccessor<IContentTypeRepository> | contentTypeRepositoryAccessor | The content type repository accessor. |
TemplateResolver | templateResolver | The template resolver. |
UrlSegmentHandler | urlSegmentHandler | The URL segment handler. |
ILanguageBranchRepository | languageBranchRepository | The language branch repository. |
IFolderIDGenerator | folderIdGenerator | The folder id generator. |
LanguageSelectorFactory | languageSelectorFactory | The language selector factory. |
IContentCopyHandler | contentCopyHandler | The content copy handler. |
IValidationService | validationService | Validation service dependency |
ContentProvider(ContentFactory, ServiceAccessor<IContentTypeRepository>, TemplateResolver, UrlSegmentHandler, ILanguageBranchRepository, IFolderIDGenerator, IContentCopyHandler, IValidationService)
Initializes a new instance of the ContentProvider class.
Declaration
protected ContentProvider(ContentFactory contentFactory, ServiceAccessor<IContentTypeRepository> contentTypeRepositoryAccessor, TemplateResolver templateResolver, UrlSegmentHandler urlSegmentHandler, ILanguageBranchRepository languageBranchRepository, IFolderIDGenerator folderIdGenerator, IContentCopyHandler contentCopyHandler, IValidationService validationService)
Parameters
Type | Name | Description |
---|---|---|
ContentFactory | contentFactory | The content factory. |
ServiceAccessor<IContentTypeRepository> | contentTypeRepositoryAccessor | The content type repository accessor. |
TemplateResolver | templateResolver | The template resolver. |
UrlSegmentHandler | urlSegmentHandler | The URL segment handler. |
ILanguageBranchRepository | languageBranchRepository | The language branch repository. |
IFolderIDGenerator | folderIdGenerator | The folder id generator. |
IContentCopyHandler | contentCopyHandler | The content copy handler. |
IValidationService | validationService | Validation service dependency |
Properties
Capabilities
Gets the capabilities that this content provider instance support. The base class implementation will during it's initialization read the passed in configuration values (Parse them to enum PageProviderCapabilities) and set the capabilities for the provider instance according to the passed in configuration values.
Declaration
[Obsolete("Use ContentProviderCapabilities Capabilities")]
public virtual PageProviderCapabilities Capabilities { get; }
Property Value
Type | Description |
---|---|
PageProviderCapabilities |
ContentCoreDataLoader
Gets or sets the content core data loader.
Declaration
protected Injected<IContentCoreDataLoader> ContentCoreDataLoader { get; set; }
Property Value
Type | Description |
---|---|
Injected<IContentCoreDataLoader> | The content core data loader. |
ContentFactory
Gets the content factory.
Declaration
protected ContentFactory ContentFactory { get; }
Property Value
Type | Description |
---|---|
ContentFactory |
ContentFolderVirtualPathProvider
Gets or sets the page folder virtual path provider.
Declaration
public virtual VirtualPathProvider ContentFolderVirtualPathProvider { get; set; }
Property Value
Type | Description |
---|---|
System.Web.Hosting.VirtualPathProvider | The page folder virtual path provider. |
ContentTypeRepository
Gets the content type repository.
Declaration
protected IContentTypeRepository ContentTypeRepository { get; }
Property Value
Type | Description |
---|---|
IContentTypeRepository |
EntryPoint
Gets the entry point which serves as root for this content provider instance.
Declaration
public ContentReference EntryPoint { get; }
Property Value
Type | Description |
---|---|
ContentReference | The entry point. |
Remarks
The default content provider (the one registered with key String.Empty) will not have a EntryPoint since it is the default provider. That provider will return ContentReference.EmptyReference
FolderIDGenerator
Gets the Folder id generator
Declaration
protected IFolderIDGenerator FolderIDGenerator { get; }
Property Value
Type | Description |
---|---|
IFolderIDGenerator |
IconPath
Gets the icon path defined for the provider.
Declaration
public string IconPath { get; }
Property Value
Type | Description |
---|---|
System.String | The icon path. |
Remarks
Will be shown in page tree to distinguish pages served by this provider instance. The value is given by specifying attribute "iconPath" in provider configuration. The path given should be relative the theme folder "/Images/ExplorerTree/PageTree/".
Examples
If the icon custom.gif is placed in folder App_Themes/Default/Images/ExplorerTree/PageTree value given on configuration attribute iconPath should be custom.gif.
IsDefaultProvider
Gets a value indicating whether this instance is the default provider.
Declaration
public bool IsDefaultProvider { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
|
LanguageBranchRepository
Gets ILanguageBranchRepository
Declaration
protected ILanguageBranchRepository LanguageBranchRepository { get; }
Property Value
Type | Description |
---|---|
ILanguageBranchRepository |
LanguageSelectorFactory
Gets LanguageSelectorFactory
Declaration
[Obsolete("Use LanguageLoaderOption on LoaderOptions instead of LanguageSelector, like for example loaderOptions.Add(LanguageLoaderOption.MasterLanguage())")]
protected LanguageSelectorFactory LanguageSelectorFactory { get; }
Property Value
Type | Description |
---|---|
LanguageSelectorFactory |
ListingFetchCacheHits
Counts calls into the ContentProviders cache for the children fetching
Declaration
public int ListingFetchCacheHits { get; }
Property Value
Type | Description |
---|---|
System.Int32 |
ListingFetchCount
Counts the total fetching into the database and cache for children contents
Declaration
public int ListingFetchCount { get; }
Property Value
Type | Description |
---|---|
System.Int32 |
ListingFetchDatabaseReads
Counts calls into the ContentProvider for the children fetching
Declaration
public int ListingFetchDatabaseReads { get; }
Property Value
Type | Description |
---|---|
System.Int32 |
Name
Gets the friendly name used to refer to the provider during configuration.
Declaration
public override string Name { get; }
Property Value
Type | Description |
---|---|
System.String |
PageFetchCacheHits
Counts calls into the ContentProviders cache for the Content fetchings
Declaration
public int PageFetchCacheHits { get; }
Property Value
Type | Description |
---|---|
System.Int32 |
PageFetchCount
Counts the total fetching into the database and cache for contents
Declaration
public int PageFetchCount { get; }
Property Value
Type | Description |
---|---|
System.Int32 |
PageFetchDatabaseReads
Counts calls into the ContentProvider for content fetchings
Declaration
public int PageFetchDatabaseReads { get; }
Property Value
Type | Description |
---|---|
System.Int32 |
Parameters
Gets the configuration parameters for the content provider
Declaration
public virtual NameValueCollection Parameters { get; }
Property Value
Type | Description |
---|---|
System.Collections.Specialized.NameValueCollection | The parameters. |
ProviderCacheKey
Gets the provider cache key.
Declaration
public string ProviderCacheKey { get; }
Property Value
Type | Description |
---|---|
System.String |
ProviderCapabilities
Gets the capabilities that this content provider instance support. The base class implementation will during it's initialization read the passed in configuration values (Parse them to enum PageProviderCapabilities) and set the capabilities for the provider instance according to the passed in configuration values.
Declaration
public virtual ContentProviderCapabilities ProviderCapabilities { get; }
Property Value
Type | Description |
---|---|
ContentProviderCapabilities |
ProviderKey
Gets the provider key that this ContentProvider instance has. It is unique for the EPiServer instance. This is the value that is set on ProviderName on each ContentReference served by this provider instance.
Declaration
public virtual string ProviderKey { get; }
Property Value
Type | Description |
---|---|
System.String | The provider key. |
StatisticsCollectedSince
Returns the statistics last start datetime
Declaration
public DateTime StatisticsCollectedSince { get; }
Property Value
Type | Description |
---|---|
System.DateTime |
SupportedVirtualPathProvider
Gets or sets the supported virtual path provider.
Declaration
public virtual List<VirtualPathProvider> SupportedVirtualPathProvider { get; set; }
Property Value
Type | Description |
---|---|
System.Collections.Generic.List<System.Web.Hosting.VirtualPathProvider> | The supported virtual path provider. |
TemplateResolver
Gets the template resolver.
Declaration
protected TemplateResolver TemplateResolver { get; }
Property Value
Type | Description |
---|---|
TemplateResolver |
ValidationService
Declaration
protected IValidationService ValidationService { get; }
Property Value
Type | Description |
---|---|
IValidationService |
VersionRepository
Gets the version repository.
Declaration
public virtual IContentVersionRepository VersionRepository { get; }
Property Value
Type | Description |
---|---|
IContentVersionRepository |
Remarks
Default implementation does not support versioning and has repository implemented by NullContentVersionRepository
WastebasketName
Gets the name of the wastebasket.
Declaration
public virtual string WastebasketName { get; }
Property Value
Type | Description |
---|---|
System.String | The name of the wastebasket. |
WastebasketReference
Gets the wastebasket reference.
Declaration
public virtual PageReference WastebasketReference { get; }
Property Value
Type | Description |
---|---|
PageReference |
Methods
AddChildrenListingToCache(ContentReference, IList<ContentReference>, String, String[])
Adds the children listing to cache.
Declaration
[Obsolete("Use AddChildrenListingToCache(ContentReference contentReference, IList<GetChildrenReferenceResult> children, string cacheKey, params string[] dependencyCacheKeys)", false)]
protected void AddChildrenListingToCache(ContentReference contentReference, IList<ContentReference> children, string cacheKey, params string[] dependencyCacheKeys)
Parameters
Type | Name | Description |
---|---|---|
ContentReference | contentReference | The content reference. |
System.Collections.Generic.IList<ContentReference> | children | The children. |
System.String | cacheKey | The cache key. |
System.String[] | dependencyCacheKeys | The dependency cache keys. |
AddChildrenListingToCache(ContentReference, IList<GetChildrenReferenceResult>, String, String[])
Adds the children listing to cache.
Declaration
protected void AddChildrenListingToCache(ContentReference contentReference, IList<GetChildrenReferenceResult> children, string cacheKey, params string[] dependencyCacheKeys)
Parameters
Type | Name | Description |
---|---|---|
ContentReference | contentReference | |
System.Collections.Generic.IList<GetChildrenReferenceResult> | children | |
System.String | cacheKey | |
System.String[] | dependencyCacheKeys |
AddContentToCache(IContent, IEnumerable<String>)
Adds the content to cache.
Declaration
protected void AddContentToCache(IContent content, IEnumerable<string> extraCacheDependencies = null)
Parameters
Type | Name | Description |
---|---|---|
IContent | content | The content. |
System.Collections.Generic.IEnumerable<System.String> | extraCacheDependencies | Optional extra cache keys to tie the cached object to. |
AddSegmentListingToCache(ContentReference, String, IList<MatchingSegmentResult>, String, String[])
Adds the matched listing to cache.
Declaration
protected void AddSegmentListingToCache(ContentReference parentLink, string urlSegment, IList<MatchingSegmentResult> matches, string cacheKey, params string[] dependencyCacheKeys)
Parameters
Type | Name | Description |
---|---|---|
ContentReference | parentLink | The parent link. |
System.String | urlSegment | The URL segment. |
System.Collections.Generic.IList<MatchingSegmentResult> | matches | The matches. |
System.String | cacheKey | The cache key. |
System.String[] | dependencyCacheKeys | The dependency cache keys. |
AllocateUniqueContentFolderId(ContentReference, ContentReference)
Decides whether a unique content folder id should be assigned for the content. This method is called both when a new content is created through IPageRepository.GetDefaultPageData and when an external content is initalized through call to InitializePageData Parameter contentLink can be used to decide which case method is called from.
Default implementation returns true if provider has capability PageFolder else false.
Declaration
public virtual bool AllocateUniqueContentFolderId(ContentReference contentLink, ContentReference parentLink)
Parameters
Type | Name | Description |
---|---|---|
ContentReference | contentLink | The page to assign a content folder for. In case of a new unsaved page value is ContentReference.Empty |
ContentReference | parentLink | The link to the parent. |
Returns
Type | Description |
---|---|
System.Boolean | An value indicating wheter a unique content folder should be allocated in Page Folder VPP |
Remarks
If the content already have a content folder allocated (e.g. it has already one created and that folder id is stored in backing storage) then this method should return false. Existing value can then be set to property PageFolderID before returning content from provider.
ClearProviderPagesFromCache()
Remove all conteent served from this provider from the cache
Declaration
public void ClearProviderPagesFromCache()
ConstructContentUri(Int32, ContentReference, Guid)
Creates an URI given content type, ContentLink, ContentGuid
Declaration
protected virtual Uri ConstructContentUri(int contentTypeId, ContentReference contentLink, Guid contentGuid)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | contentTypeId | The content type id. |
ContentReference | contentLink | The content link. |
System.Guid | contentGuid | The content GUID. |
Returns
Type | Description |
---|---|
System.Uri |
Copy(ContentReference, ContentReference, Boolean, AccessLevel)
Copy a content to another container served by the same content provider.
Declaration
public virtual ContentReference Copy(ContentReference contentLink, ContentReference destinationLink, bool publishOnDestination, AccessLevel requiredSourceAccess)
Parameters
Type | Name | Description |
---|---|---|
ContentReference | contentLink | The content link. |
ContentReference | destinationLink | The destination link. |
System.Boolean | publishOnDestination | if set to |
AccessLevel | requiredSourceAccess | The required source access. |
Returns
Type | Description |
---|---|
ContentReference |
CreateCachePolicyFromCacheSettings(CacheSettings, IEnumerable<String>, String[])
Declaration
protected CacheEvictionPolicy CreateCachePolicyFromCacheSettings(CacheSettings settings, IEnumerable<string> additionalCacheDependencies, params string[] additionalMasterKeys)
Parameters
Type | Name | Description |
---|---|---|
CacheSettings | settings | |
System.Collections.Generic.IEnumerable<System.String> | additionalCacheDependencies | |
System.String[] | additionalMasterKeys |
Returns
Type | Description |
---|---|
CacheEvictionPolicy |
CreateContentResolveResult(ContentCoreData)
Creates the content resolve result.
Declaration
protected virtual ContentResolveResult CreateContentResolveResult(ContentCoreData contentData)
Parameters
Type | Name | Description |
---|---|---|
ContentCoreData | contentData | The content data. |
Returns
Type | Description |
---|---|
ContentResolveResult |
CreateLanguageBranch(ContentReference, ILanguageSelector)
Creates the language branch.
Declaration
public virtual IContent CreateLanguageBranch(ContentReference contentLink, ILanguageSelector selector)
Parameters
Type | Name | Description |
---|---|---|
ContentReference | contentLink | The content link. |
ILanguageSelector | selector | The selector. |
Returns
Type | Description |
---|---|
IContent |
Delete(ContentReference, Boolean)
Delete a content from storage..
Declaration
public virtual void Delete(ContentReference contentLink, bool forceDelete)
Parameters
Type | Name | Description |
---|---|---|
ContentReference | contentLink | The content link. |
System.Boolean | forceDelete | if set to |
DeleteChildren(ContentReference, Boolean)
Deletes the children. If delete is to be supported this method needs to be overriden.
Declaration
public virtual void DeleteChildren(ContentReference contentLink, bool forceDelete)
Parameters
Type | Name | Description |
---|---|---|
ContentReference | contentLink | The content link. |
System.Boolean | forceDelete | if set to |
DeleteLanguageBranch(ContentReference, String)
Deletes a language branch for the content.
Declaration
public virtual void DeleteLanguageBranch(ContentReference contentLink, string languageBranch)
Parameters
Type | Name | Description |
---|---|---|
ContentReference | contentLink | The content link. |
System.String | languageBranch | The language branch. |
DeleteSecurityEntity(String, SecurityEntityType)
Deletes the specified user or role name.
Declaration
public virtual void DeleteSecurityEntity(string userOrRoleName, SecurityEntityType entityUserRole)
Parameters
Type | Name | Description |
---|---|---|
System.String | userOrRoleName | Name of the user or role. |
SecurityEntityType | entityUserRole | The entity user role. |
GetBySegment(ContentReference, String, ILanguageSelector)
Gets the child IContentData instance that has a RouteSegment
that matches urlSegment
.
Declaration
[Obsolete("Use GetBySegment on IContentLoader")]
public IContent GetBySegment(ContentReference parentLink, string urlSegment, ILanguageSelector selector)
Parameters
Type | Name | Description |
---|---|---|
ContentReference | parentLink | The parent link. |
System.String | urlSegment | The URL segment. |
ILanguageSelector | selector | The selector. |
Returns
Type | Description |
---|---|
IContent | The content instance that matches |
Remarks
It is the passed in selector
that is responsible to handle fallback and replacement settings for language.
GetChildrenReferences(ContentReference, String, Int32, Int32)
Gets the children references.
Declaration
[Obsolete("use GetChildrenReferences<T>(ContentReference contentReference, string languageID, int startIndex, int maxRows)")]
public IList<ContentReference> GetChildrenReferences(ContentReference contentReference, string languageID, int startIndex, int maxRows)
Parameters
Type | Name | Description |
---|---|---|
ContentReference | contentReference | The content reference. |
System.String | languageID | The language ID. |
System.Int32 | startIndex | The start index. |
System.Int32 | maxRows | The max rows. |
Returns
Type | Description |
---|---|
System.Collections.Generic.IList<ContentReference> |
Remarks
The implementation will look in the cache if the listing is present, if so the list is returned from there. If not present it will call current providers method GetChildrenReferences.
GetChildrenReferences<T>(ContentReference, String, Int32, Int32)
Gets the children references.
Declaration
public IList<GetChildrenReferenceResult> GetChildrenReferences<T>(ContentReference contentReference, string languageID, int startIndex, int maxRows)
where T : IContentData
Parameters
Type | Name | Description |
---|---|---|
ContentReference | contentReference | |
System.String | languageID | |
System.Int32 | startIndex | |
System.Int32 | maxRows |
Returns
Type | Description |
---|---|
System.Collections.Generic.IList<GetChildrenReferenceResult> |
Type Parameters
Name | Description |
---|---|
T |
Remarks
The implementation will look in the cache if the listing is present, if so the list is returned from there. If not present it will call current providers method GetChildrenReferences.
GetDefaultContent(IContent, Int32, ILanguageSelector)
Gets the default content.
Declaration
public virtual IContent GetDefaultContent(IContent parentContent, int contentTypeID, ILanguageSelector languageSelector)
Parameters
Type | Name | Description |
---|---|---|
IContent | parentContent | Content of the parent. |
System.Int32 | contentTypeID | The content type ID. |
ILanguageSelector | languageSelector | The language selector. |
Returns
Type | Description |
---|---|
IContent |
GetDescendentReferences(ContentReference)
Gets all the descendents for the current content (that is at all levels). The base class implementation will do recursive calls to GetChildrenReferences.
Declaration
public virtual IList<ContentReference> GetDescendentReferences(ContentReference contentLink)
Parameters
Type | Name | Description |
---|---|---|
ContentReference | contentLink | The content link. |
Returns
Type | Description |
---|---|
System.Collections.Generic.IList<ContentReference> |
GetLanguageBranches(ContentReference)
Gets the language branches.
Declaration
public virtual IEnumerable<IContent> GetLanguageBranches(ContentReference contentLink)
Parameters
Type | Name | Description |
---|---|---|
ContentReference | contentLink | The content link. |
Returns
Type | Description |
---|---|
System.Collections.Generic.IEnumerable<IContent> |
GetMatchingSegments(ContentReference, String)
Gets all matching segments that has a RouteSegment
that matches urlSegment
.
Declaration
public IList<MatchingSegmentResult> GetMatchingSegments(ContentReference parentLink, string urlSegment)
Parameters
Type | Name | Description |
---|---|---|
ContentReference | parentLink | The parent link. |
System.String | urlSegment | The URL segment. |
Returns
Type | Description |
---|---|
System.Collections.Generic.IList<MatchingSegmentResult> | A list of all matching content instances. |
GetPagesWithPropertyDefinition(PropertyDefinition, Boolean, Boolean)
Gets the pages with instance of page definition.
This method is for example called to verify that no pages with page definition exist before a page definition defined in code is deleted.
Declaration
public virtual IList<ContentUsage> GetPagesWithPropertyDefinition(PropertyDefinition propertyDefinition, bool onlyNoneMasterLanguage, bool onlyPublished)
Parameters
Type | Name | Description |
---|---|---|
PropertyDefinition | propertyDefinition | The page definition. |
System.Boolean | onlyNoneMasterLanguage | if set to |
System.Boolean | onlyPublished | if set to |
Returns
Type | Description |
---|---|
System.Collections.Generic.IList<ContentUsage> |
Remarks
The default implementation returns empty list.
GetReferencesToContentItems(IEnumerable<ContentReference>)
Gets all references to the specified content iotems. Override method to get all references to the given items.
Declaration
public virtual IList<ReferenceInformation> GetReferencesToContentItems(IEnumerable<ContentReference> contentLinks)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.IEnumerable<ContentReference> | contentLinks | The content links to check references for. |
Returns
Type | Description |
---|---|
System.Collections.Generic.IList<ReferenceInformation> | A list of items that hold some kind of reference to the specified content. |
GetReferencesToLocalContent(ContentReference, Boolean)
Gets all references to the specified content. Override method to get all references to the given items and optionally references to all decendents.
Declaration
public virtual IList<ReferenceInformation> GetReferencesToLocalContent(ContentReference contentLink, bool includeDecendents)
Parameters
Type | Name | Description |
---|---|---|
ContentReference | contentLink | The content links. |
System.Boolean | includeDecendents | if set to |
Returns
Type | Description |
---|---|
System.Collections.Generic.IList<ReferenceInformation> | A list of items that hold some kind of reference to the specified content. |
GetScatteredContents(IEnumerable<ContentReference>, ILanguageSelector)
Gets the IContent instances given passed in contentLinks
.
Declaration
public IList<IContent> GetScatteredContents(IEnumerable<ContentReference> contentLinks, ILanguageSelector selector)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.IEnumerable<ContentReference> | contentLinks | The content links. |
ILanguageSelector | selector | The selector. |
Returns
Type | Description |
---|---|
System.Collections.Generic.IList<IContent> |
Remarks
In contentLinks
contain duplicate entries only one IContent instance is returned for the duplicate entries.
If there is no IContent that matches an entry in contentLinks
that entry is ignored.
GetSecurityDescriptor(ContentReference)
Gets the specified content security descriptor object for the requested content link.
Declaration
public virtual IContentSecurityDescriptor GetSecurityDescriptor(ContentReference contentLink)
Parameters
Type | Name | Description |
---|---|---|
ContentReference | contentLink | The content link. |
Returns
Type | Description |
---|---|
IContentSecurityDescriptor |
GetUniqueUrlSegment(IContent, ContentReference)
Ensures that a content has a unique URL segment (means it is unique among all its siblings on the same language).
This method will make sure that the UrlSegment is unique.
Declaration
public virtual string GetUniqueUrlSegment(IContent changedContent, ContentReference destinationLink)
Parameters
Type | Name | Description |
---|---|---|
IContent | changedContent | The changed content. |
ContentReference | destinationLink | The destination link. |
Returns
Type | Description |
---|---|
System.String | An unique urlsegment for all siblings on the language |
Remarks
Base class implementation will call GetChildren on destinationLink and check that no other sibling on the same language already has the same urlsegment. If so a unique segment is created.
GetWasteBasket()
Gets the waste basket.
Declaration
protected virtual IContent GetWasteBasket()
Returns
Type | Description |
---|---|
IContent | The waste basket. |
HasCapability(ContentProviderCapabilities)
Determines whether the specified provider capabilities has capability.
Declaration
public bool HasCapability(ContentProviderCapabilities contentProviderCapabilities)
Parameters
Type | Name | Description |
---|---|---|
ContentProviderCapabilities | contentProviderCapabilities | The provider capabilities. |
Returns
Type | Description |
---|---|
System.Boolean |
|
HasCapability(PageProviderCapabilities)
Determines whether the specified provider capabilities has capability.
Declaration
[Obsolete("Use HasCapability(ContentProviderCapabilities pageProviderCapabilities)")]
public bool HasCapability(PageProviderCapabilities pageProviderCapabilities)
Parameters
Type | Name | Description |
---|---|---|
PageProviderCapabilities | pageProviderCapabilities | The provider capabilities. |
Returns
Type | Description |
---|---|
System.Boolean |
|
Initialize(String, NameValueCollection)
Initializes the provider with configuration seetings. Override this method to do any provider specific initialization.
Declaration
public override void Initialize(string name, NameValueCollection config)
Parameters
Type | Name | Description |
---|---|---|
System.String | name | The friendly name of the provider. |
System.Collections.Specialized.NameValueCollection | config | A collection of the name/value pairs representing the provider-specific attributes specified in the configuration for this provider. |
Remarks
Remember to call base.Initialize in implementation
Exceptions
Type | Condition |
---|---|
System.ArgumentNullException | The name of the provider is null. |
System.ArgumentException | The name of the provider has a length of zero. |
System.InvalidOperationException | An attempt is made to call System.Configuration.Provider.ProviderBase.Initialize(System.String,System.Collections.Specialized.NameValueCollection) on a provider after the provider has already been initialized. |
IsContentTypeUsed(ContentType)
Performs a check if specified ContentType is used.
This method is for example called before a content type defined in code is deleted.
Declaration
public virtual bool IsContentTypeUsed(ContentType contentType)
Parameters
Type | Name | Description |
---|---|---|
ContentType | contentType | The contentType to return references for. |
Returns
Type | Description |
---|---|
System.Boolean |
Remarks
Default implementation calls ListContentOfContentType and checks if it returns Count > 0.
IsPropertyDefinitionUsed(PropertyDefinition)
Determines whether [is property definition used] [the specified property definition].
Declaration
public virtual bool IsPropertyDefinitionUsed(PropertyDefinition propertyDefinition)
Parameters
Type | Name | Description |
---|---|---|
PropertyDefinition | propertyDefinition | The property definition. |
Returns
Type | Description |
---|---|
System.Boolean |
|
Remarks
Default implementation calls GetPagesWithPropertyDefinition and checks if it returns Count > 0.
ListContentOfContentType(ContentType)
Gets a list of references to pages of specified PageType.
This method is for example called to verify that no content of a type exist before a content type defined in code is deleted.
Declaration
public virtual IList<ContentUsage> ListContentOfContentType(ContentType contentType)
Parameters
Type | Name | Description |
---|---|---|
ContentType | contentType | The contentType to return references for. |
Returns
Type | Description |
---|---|
System.Collections.Generic.IList<ContentUsage> |
Remarks
The default implementation returns empty list.
ListDelayedPublish()
Lists all content that are set to delayed publish. Base class implementation does not support this method but returns new Enumerable.Empty<IContent>. If delay publishing is to be supported this method should be overriden.
Declaration
public virtual IEnumerable<IContent> ListDelayedPublish()
Returns
Type | Description |
---|---|
System.Collections.Generic.IEnumerable<IContent> |
ListMatchingSegments(ContentReference, String)
Lists references to all children content items that have matching routing/url segments.
Declaration
protected virtual IList<MatchingSegmentResult> ListMatchingSegments(ContentReference parentLink, string urlSegment)
Parameters
Type | Name | Description |
---|---|---|
ContentReference | parentLink | The parent link. |
System.String | urlSegment | The URL segment. |
Returns
Type | Description |
---|---|
System.Collections.Generic.IList<MatchingSegmentResult> |
Remarks
Default implementation will use LoadChildren(ContentReference, ILanguageSelector, Int32, Int32) and GetLanguageBranches(ContentReference) to find all matching segments.
Load(ContentReference, ILanguageSelector)
Read a single content from the storage. The default implementation will check for the content in the cache. If it is not found there it will call into method LoadContent(ContentReference, ILanguageSelector)
Declaration
public IContent Load(ContentReference contentLink, ILanguageSelector selector)
Parameters
Type | Name | Description |
---|---|---|
ContentReference | contentLink | The content link. |
ILanguageSelector | selector | The selector. |
Returns
Type | Description |
---|---|
IContent |
LoadBatched(IList<ContentReference>, ILanguageSelector)
Gets all content items that is represented by the provided references in the language given by the provided language selector.
Declaration
public IList<IContent> LoadBatched(IList<ContentReference> contentReferences, ILanguageSelector selector)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.IList<ContentReference> | contentReferences | A list of references to content that should be fetched. |
ILanguageSelector | selector | The selector that provides the language to get the content in. |
Returns
Type | Description |
---|---|
System.Collections.Generic.IList<IContent> | A list of content for the specifed references. |
Remarks
For references that specifies a specific version (that is where WorkID is set) the
selector
is ignored and that specific version is returned.
If contentReferences
contain duplicate entries only one IContent instance is returned for the duplicate entries.
LoadChildren(ContentReference, ILanguageSelector, Int32, Int32)
Retrieves the children for a specific content. The base class implementation will check for the list of references in the cache. If not found it will call GetChildrenReferences(ContentReference, String, Int32, Int32). It will then try to load the contents from cache. For those contents not found in cache it will call LoadContents(IList<ContentReference>, ILanguageSelector).
Declaration
[Obsolete("Use LoadChildren<T>(ContentReference contentLink, ILanguageSelector selector, int startIndex, int maxRows)")]
public IEnumerable<IContent> LoadChildren(ContentReference contentLink, ILanguageSelector selector, int startIndex, int maxRows)
Parameters
Type | Name | Description |
---|---|---|
ContentReference | contentLink | The content link. |
ILanguageSelector | selector | The selector. |
System.Int32 | startIndex | The start index. |
System.Int32 | maxRows | The max rows. |
Returns
Type | Description |
---|---|
System.Collections.Generic.IEnumerable<IContent> |
LoadChildren<T>(ContentReference, ILanguageSelector, Int32, Int32)
Retrieves the children for a specific content. The base class implementation will check for the list of references and content types in the cache. If not found it will call GetChildrenReferences<T>(ContentReference, String, Int32, Int32). It will then try to load the contents from cache. For those contents not found in cache it will call LoadContents(IList<ContentReference>, ILanguageSelector).
Declaration
public IEnumerable<T> LoadChildren<T>(ContentReference contentLink, ILanguageSelector selector, int startIndex, int maxRows)
where T : IContentData
Parameters
Type | Name | Description |
---|---|---|
ContentReference | contentLink | |
ILanguageSelector | selector | |
System.Int32 | startIndex | |
System.Int32 | maxRows |
Returns
Type | Description |
---|---|
System.Collections.Generic.IEnumerable<T> |
Type Parameters
Name | Description |
---|---|
T |
LoadChildrenReferences(ContentReference, String, out Boolean)
Loads the children references.
Declaration
[Obsolete("Use IList<ContentNode> LoadChildrenReferencesAndTypes(ContentReference contentLink, string languageID, out bool languageSpecific)", true)]
protected virtual IList<ContentReference> LoadChildrenReferences(ContentReference contentLink, string languageID, out bool languageSpecific)
Parameters
Type | Name | Description |
---|---|---|
ContentReference | contentLink | The content link. |
System.String | languageID | The language ID. |
System.Boolean | languageSpecific | Set to True if the list of children is unique per language for this content item |
Returns
Type | Description |
---|---|
System.Collections.Generic.IList<ContentReference> | A list of references to all children of this content item |
Remarks
If the provider supports structure this method should be implemented.
LoadChildrenReferencesAndTypes(ContentReference, String, out Boolean)
Loads the children references and types
Declaration
protected virtual IList<GetChildrenReferenceResult> LoadChildrenReferencesAndTypes(ContentReference contentLink, string languageID, out bool languageSpecific)
Parameters
Type | Name | Description |
---|---|---|
ContentReference | contentLink | |
System.String | languageID | |
System.Boolean | languageSpecific |
Returns
Type | Description |
---|---|
System.Collections.Generic.IList<GetChildrenReferenceResult> |
LoadContent(ContentReference, ILanguageSelector)
Load content for given contentlink.
Declaration
protected abstract IContent LoadContent(ContentReference contentLink, ILanguageSelector languageSelector)
Parameters
Type | Name | Description |
---|---|---|
ContentReference | contentLink | The content link. |
ILanguageSelector | languageSelector | The language selector. |
Returns
Type | Description |
---|---|
IContent | A language specific content or master language version content |
Remarks
If the requested content does not exist for the languageSelector
then the content of master language version should be retuned.
LoadContents(IList<ContentReference>, ILanguageSelector)
The base class implementation will call Load(ContentReference, ILanguageSelector) for each ContentReference. If overriden the implementation should return all requested contents.
Declaration
protected virtual IEnumerable<IContent> LoadContents(IList<ContentReference> contentReferences, ILanguageSelector selector)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.IList<ContentReference> | contentReferences | The content references. |
ILanguageSelector | selector | The selector. |
Returns
Type | Description |
---|---|
System.Collections.Generic.IEnumerable<IContent> | The loaded list of content items (method should never return |
Remarks
A suggested implementation is to:
For references that specifies a specific version (that is where WorkID is set) the
selector
should be ignored and that specific version should be returned.
For references that is not for a specific version call return contents in the language given by Language property. If System.Globalization.CultureInfo.InvariantCulture or null is passed in or if the content does not exist in the specified language then content in master language branch should be returned.
Move(ContentReference, ContentReference)
Move a content to another container within the provider instance.
Declaration
public virtual void Move(ContentReference contentLink, ContentReference destinationLink)
Parameters
Type | Name | Description |
---|---|---|
ContentReference | contentLink | The content link. |
ContentReference | destinationLink | The destination link. |
MoveToWastebasket(ContentReference, String)
Moves to wastebasket.
Declaration
public virtual void MoveToWastebasket(ContentReference contentLink, string deletedBy)
Parameters
Type | Name | Description |
---|---|---|
ContentReference | contentLink | The content link. |
System.String | deletedBy | The user who deleted the content. |
ResetCounters()
Reset statistic counters
Declaration
public void ResetCounters()
ResolveContent(ContentReference)
Tries to resolve a Content from a ContentReference.
Declaration
protected virtual ContentResolveResult ResolveContent(ContentReference contentLink)
Parameters
Type | Name | Description |
---|---|---|
ContentReference | contentLink | The content link. |
Returns
Type | Description |
---|---|
ContentResolveResult | A ContentResolveResult with the identifiers for the content or null if no content was matched. |
Remarks
This method should be implemented to support permanent link support. With permanent link means that a link to a IContent instance can be stored in a Guid based format. Then the link is not broken even if content instance moves. Also permanent links are preserved during import/export and mirroring.
ResolveContent(Guid)
Tries to resolve a Content from a Guid identifier.
Declaration
protected virtual ContentResolveResult ResolveContent(Guid contentGuid)
Parameters
Type | Name | Description |
---|---|---|
System.Guid | contentGuid | The content GUID. |
Returns
Type | Description |
---|---|
ContentResolveResult | A ContentResolveResult with the identifiers for the content or null if no content was matched. |
Remarks
This method should be implemented to support permanent link support. With permanent link means that a link to a IContent instance can be stored in a Guid based format. Then the link is not broken even if content instance moves. Also permanent links are preserved during import/export and mirroring.
ResolveContentFolder(Int32)
Resolves which content that is associated with given contentFolderId.
Declaration
public virtual ContentReference ResolveContentFolder(int contentFolderId)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | contentFolderId | The content folder id. |
Returns
Type | Description |
---|---|
ContentReference | The reference to the content that owns specified resource folder, Contenet.EmptyReference is returned if no match is found. |
Remarks
If content from provider does not store any resources in Page Folder VPP then this can be overriden to return ContentReference.EmptyReference
Save(IContent, SaveAction)
Save content to storage with specified action.
Declaration
public virtual ContentReference Save(IContent content, SaveAction action)
Parameters
Type | Name | Description |
---|---|---|
IContent | content | The content. |
SaveAction | action | The action. |
Returns
Type | Description |
---|---|
ContentReference |
SaveSecurityDescriptor(ContentReference, IContentSecurityDescriptor, SecuritySaveType)
Saves the specified content security descriptor.
Declaration
public virtual void SaveSecurityDescriptor(ContentReference contentLink, IContentSecurityDescriptor contentSecurityDescriptor, SecuritySaveType securitySaveType)
Parameters
Type | Name | Description |
---|---|---|
ContentReference | contentLink | The content link. |
IContentSecurityDescriptor | contentSecurityDescriptor | The content security descriptor. |
SecuritySaveType | securitySaveType | Type of the security save. |
SetCacheSettings(ContentReference, IEnumerable<ContentReference>, CacheSettings)
Sets the cache settings for children listing when it is added to cache. Override method to set e.g. control lifetime of content object in cache or to add additional cache dependency keys.
Declaration
[Obsolete("Use SetCacheSettings(ContentReference contentReference, IEnumerable<GetChildrenReferenceResult> children, CacheSettings cacheSettings)")]
protected virtual void SetCacheSettings(ContentReference contentReference, IEnumerable<ContentReference> children, CacheSettings cacheSettings)
Parameters
Type | Name | Description |
---|---|---|
ContentReference | contentReference | The content reference. |
System.Collections.Generic.IEnumerable<ContentReference> | children | The children. |
CacheSettings | cacheSettings | The cache settings. |
SetCacheSettings(ContentReference, IEnumerable<GetChildrenReferenceResult>, CacheSettings)
Sets the cache settings for children listing when it is added to cache. Override method to set e.g. control lifetime of content object in cache or to add additional cache dependency keys.
Declaration
protected virtual void SetCacheSettings(ContentReference contentReference, IEnumerable<GetChildrenReferenceResult> children, CacheSettings cacheSettings)
Parameters
Type | Name | Description |
---|---|---|
ContentReference | contentReference | |
System.Collections.Generic.IEnumerable<GetChildrenReferenceResult> | children | |
CacheSettings | cacheSettings |
SetCacheSettings(ContentReference, String, IEnumerable<MatchingSegmentResult>, CacheSettings)
Sets the cache settings for matched children url segments when it is added to cache. Override method to set e.g. control lifetime of content object in cache or to add additional cache dependency keys.
Declaration
protected virtual void SetCacheSettings(ContentReference parentLink, string urlSegment, IEnumerable<MatchingSegmentResult> childrenMatches, CacheSettings cacheSettings)
Parameters
Type | Name | Description |
---|---|---|
ContentReference | parentLink | The parent link. |
System.String | urlSegment | The URL segment. |
System.Collections.Generic.IEnumerable<MatchingSegmentResult> | childrenMatches | The children matches. |
CacheSettings | cacheSettings | The cache settings. |
SetCacheSettings(IContent, CacheSettings)
Sets the cache settings for a content when it is added to cache. Override method to set e.g. control lifetime of content object in cache or to add additional cache dependency keys.
Declaration
protected virtual void SetCacheSettings(IContent content, CacheSettings cacheSettings)
Parameters
Type | Name | Description |
---|---|---|
IContent | content | The content that is about to be added to cache. |
CacheSettings | cacheSettings | The cache settings. |
ThrowValidationException(ICollection<ValidationError>)
Throws a System.ComponentModel.DataAnnotations.ValidationException populated with the provided validation errors if there are any severe enough.
Declaration
protected virtual void ThrowValidationException(ICollection<ValidationError> errors)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.ICollection<ValidationError> | errors | Collection of errors found. |
Exceptions
Type | Condition |
---|---|
System.ComponentModel.DataAnnotations.ValidationException | Thrown if the validation find any issues with the content. |
Validate(IContent, SaveAction)
Validates a content item before it is to be saved.
Declaration
public virtual void Validate(IContent content, SaveAction action)
Parameters
Type | Name | Description |
---|---|---|
IContent | content | The content item about to be saved. |
SaveAction | action | The type of save action that is being requested. |
Exceptions
Type | Condition |
---|---|
System.ComponentModel.DataAnnotations.ValidationException | Thrown if the validation find any issues with the content. |
ValidateForPublishing(IContent)
Validates the content before its about to be published.
Declaration
protected virtual IEnumerable<ValidationError> ValidateForPublishing(IContent content)
Parameters
Type | Name | Description |
---|---|---|
IContent | content | The content item that is to be published |
Returns
Type | Description |
---|---|
System.Collections.Generic.IEnumerable<ValidationError> | A list of all errors that are found |
Remarks
The default implementation ensures in the case of a local content that there is a published version of the master language before publishing the local language.
Explicit Interface Implementations
IContentResolver.ResolveContent(ContentReference)
Tries to resolve a Content from a ContentReference.
Declaration
ContentResolveResult IContentResolver.ResolveContent(ContentReference contentLink)
Parameters
Type | Name | Description |
---|---|---|
ContentReference | contentLink | The content link. |
Returns
Type | Description |
---|---|
ContentResolveResult | A ContentResolveResult with the identifiers for the content or null if no content was matched. |
IContentResolver.ResolveContent(Guid)
Tries to resolve a Content from a Guid identifier.
Declaration
ContentResolveResult IContentResolver.ResolveContent(Guid contentGuid)
Parameters
Type | Name | Description |
---|---|---|
System.Guid | contentGuid | The content GUID. |
Returns
Type | Description |
---|---|
ContentResolveResult | A ContentResolveResult with the identifiers for the content or null if no content was matched. |