Class SubscriptionJob
Job that handles subscriptions, scheduled automatically by EPiServer Scheduler and should not be called in code.
Inheritance
Inherited Members
Namespace: EPiServer.Personalization
Assembly: EPiServer.dll
Version: 8.11.0Syntax
[ScheduledPlugIn(DisplayName = "Subscription", LanguagePath = "/admin/databasejob/subscription", HelpFile = "subscriptionjob")]
public class SubscriptionJob
Constructors
SubscriptionJob()
Initializes a new instance of the SubscriptionJob class.
Declaration
public SubscriptionJob()
SubscriptionJob(IContentRepository, LocalizationService, SubscriptionDB, SiteDefinitionResolver)
Initializes a new instance of the SubscriptionJob class.
Declaration
public SubscriptionJob(IContentRepository contentRepository, LocalizationService localizationService, SubscriptionDB subscriptionDataAccess, SiteDefinitionResolver siteDefinitionResolver)
Parameters
Type | Name | Description |
---|---|---|
IContentRepository | contentRepository | |
LocalizationService | localizationService | |
SubscriptionDB | subscriptionDataAccess | |
SiteDefinitionResolver | siteDefinitionResolver |
Methods
CanSendSubscription(EPiServerProfile, PageData, PageDataCollection)
Controls if a user can be notified about page changes. Called for each subscription being processed.
Declaration
protected virtual bool CanSendSubscription(EPiServerProfile profile, PageData rootPage, PageDataCollection changedPages)
Parameters
Type | Name | Description |
---|---|---|
EPiServerProfile | profile | User's profile |
PageData | rootPage | The root page for the suscription |
PageDataCollection | changedPages | The pages taht has changed |
Returns
Type | Description |
---|---|
System.Boolean | True if the subscription notification can be sent. Returning false cancels the notification for this user. |
Execute()
Service entrypoint
Declaration
public static string Execute()
Returns
Type | Description |
---|---|
System.String |
GetChangedPages(EPiServerProfile, String, SubscriptionDescriptor, IPrincipal)
Gets the changed pages under one subscription root for a specific user.
Declaration
protected PageDataCollection GetChangedPages(EPiServerProfile profile, string language, SubscriptionDescriptor subscribedPage, IPrincipal principal)
Parameters
Type | Name | Description |
---|---|---|
EPiServerProfile | profile | The profile for a user. |
System.String | language | The requested language. |
SubscriptionDescriptor | subscribedPage | The subscribed subscription root. |
System.Security.Principal.IPrincipal | principal | The principal for the user. |
Returns
Type | Description |
---|---|
PageDataCollection | A collection of pages that have been changed and are children of the subscribedPage. |
GetPage(Int32, IList<String>, String, IPrincipal)
Gets the page. Will be filtered on access rights, start publish and if the page is explicitly excluded.
Declaration
[Obsolete("You must explicitly say if pages should be filtered or not to avoid bugs")]
protected PageData GetPage(int pageID, IList<string> pageLanguages, string language, IPrincipal principal)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | pageID | The ID of the page. |
System.Collections.Generic.IList<System.String> | pageLanguages | The page languages. [Obsolete parameter] |
System.String | language | The language you want the page in. |
System.Security.Principal.IPrincipal | principal | The principal for the user. Used to check access rights on the page. |
Returns
Type | Description |
---|---|
PageData | A PageData if one matching the criterias exists, otherwise null. |
GetPage(Int32, String, IPrincipal, Boolean)
Gets the page. Will be filtered on access rights, start publish and if the page is explicitly excluded.
Declaration
protected PageData GetPage(int pageID, string language, IPrincipal principal, bool filterSubscribeExclude)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | pageID | The ID of the page. |
System.String | language | The language you want the page in. |
System.Security.Principal.IPrincipal | principal | The principal for the user. Used to check access rights on the page. |
System.Boolean | filterSubscribeExclude | Filter based on EPSUBSCRIBE-EXCLUDE |
Returns
Type | Description |
---|---|
PageData | A PageData if one matching the criterias exists, otherwise null. |
InternalExecute()
Execute subscription job
Declaration
protected virtual string InternalExecute()
Returns
Type | Description |
---|---|
System.String |
IsPageExcluded(PageData)
Determines whether the specified page should be excluded from the subscription.
Declaration
protected bool IsPageExcluded(PageData page)
Parameters
Type | Name | Description |
---|---|---|
PageData | page | The page that may be excluded. |
Returns
Type | Description |
---|---|
System.Boolean |
|
SendSubscriptions(EPiServerProfile)
Process subscriptions and send notification about changes to subscribers.
Declaration
protected virtual int SendSubscriptions(EPiServerProfile profile)
Parameters
Type | Name | Description |
---|---|---|
EPiServerProfile | profile | The profile for the subscriber |
Returns
Type | Description |
---|---|
System.Int32 | Actual number of subscription notification messages sent. |
SendToHandler(EPiServerProfile, PageData, PageDataCollection)
Send subscription data to handler
Declaration
protected virtual void SendToHandler(EPiServerProfile profile, PageData rootPage, PageDataCollection changedPages)
Parameters
Type | Name | Description |
---|---|---|
EPiServerProfile | profile | The profile for a subscriber |
PageData | rootPage | Root for subscription |
PageDataCollection | changedPages | The pages that has changed |