Virtual Happy Hour is canceled this month (March) due to Good Friday.
Virtual Happy Hour is canceled this month (March) due to Good Friday.
EPiServer.CMS.Core 7.19.2
EPiServer.CMS.Core 10.1.0
Sep 22, 2015
Nov 11, 2016
CMS Core
Closed, Fixed and tested
... EPiServer.MirroringService.ChangeLog.MirroringChangeLogFilter.ShouldContentBeAdded(EPiServer.Core.ContentReference) EPiServer.MirroringService.ChangeLog.MirroringChangeLogFilter.HandleReferencesToContent(EPiServer.Core.ContentReference) EPiServer.MirroringService.ChangeLog.MirroringChangeLogFilter.ShouldContentBeAdded(EPiServer.Core.ContentReference) EPiServer.MirroringService.ChangeLog.MirroringChangeLogFilter.HandleContentAsset(EPiServer.Core.ContentReference, EPiServer.Core.ContentPath) EPiServer.MirroringService.ChangeLog.MirroringChangeLogFilter.ShouldContentBeAdded(EPiServer.Core.ContentReference) EPiServer.MirroringService.ChangeLog.MirroringChangeLogFilter.HandleReferencesToContent(EPiServer.Core.ContentReference) EPiServer.MirroringService.ChangeLog.MirroringChangeLogFilter.ShouldContentBeAdded(EPiServer.Core.ContentReference) EPiServer.MirroringService.ChangeLog.MirroringChangeLogFilter.HandleContentAsset(EPiServer.Core.ContentReference, EPiServer.Core.ContentPath) EPiServer.MirroringService.ChangeLog.MirroringChangeLogFilter.ShouldContentBeAdded(EPiServer.Core.ContentReference) EPiServer.MirroringService.ChangeLog.MirroringChangeLogFilter.HandleReferencesToContent(EPiServer.Core.ContentReference) EPiServer.MirroringService.ChangeLog.MirroringChangeLogFilter.ShouldContentBeAdded(EPiServer.Core.ContentReference) EPiServer.MirroringService.ChangeLog.MirroringChangeLogFilter.HandleContentAsset(EPiServer.Core.ContentReference, EPiServer.Core.ContentPath) EPiServer.MirroringService.ChangeLog.MirroringChangeLogFilter.ShouldContentBeAdded(EPiServer.Core.ContentReference) EPiServer.MirroringService.ChangeLog.MirroringChangeLogFilter.HandleReferencesToContent(EPiServer.Core.ContentReference) EPiServer.MirroringService.ChangeLog.MirroringChangeLogFilter.ShouldContentBeAdded(EPiServer.Core.ContentReference) EPiServer.MirroringService.ChangeLog.MirroringChangeLogFilter.ReadChangeLog() EPiServer.MirroringService.ChangeLog.MirroringChangeLogFilter.GetChanges() EPiServer.MirroringService.MirroringSourceService.MirroringExporter.ExportPackages() EPiServer.MirroringService.MirroringSourceService.MirroringExporter.Export() EPiServer.MirroringService.Proxy.RuntimeMirroringProxy.StartMirroring(System.Guid, EPiServer.MirroringService.MirroringTransferProtocol.Common.ValidationContext)
ShouldContentBeAdded uses a Dictionary<ContentReference, bool> class variable to keep
track of visited nodes and the evaluation result of those nodes. While the combination
of these two distinct purposes are tempting, the effect is that the visit can only be
logged after its result is found. In some cases, this is too late to break a cyclic
dependency between content.
:start
In the case where Page A exists as a reference in a shared block, that block will be
found in the call to HandleReferencesToContent(PageA). HandleReferencesToContent calls
IContentRepository.GetReferencesToContent(contentLink, false/includeDescendents/),
which will execute and return
EXEC@return_value = [dbo].[editDeletePageCheck]@PageID = 7584,@IncludeDecendents = 0
OwnerLanguageID | ReferencedLanguageID | OwnerID | OwnerName | ReferencedID | ReferencedName | ReferenceType |
---|---|---|---|---|---|---|
1 | NULL | 7592 | New Block | 7584 | Mark's Home | 0 |
This new ContentReference is then passed to ShouldContentBeAdded, which now passes
a different evaluation path. Before calling HandleContentAsset, it calls
GetContentParents which in turn calls GetAncestors for the given ContentReference.
fkParentID | fkChildID | NestingLevel | (Name from tblContentLanguage) |
---|---|---|---|
1 | 7592 | 3 | Root |
4 | 7592 | 2 | SysContentAssets |
7585 | 7592 | 1 | Mark's |
Since the list of ancestors does not include the source root, further evaluation is
required. This is done by HandleContentAsset. For each element in the path list above,
the content item is retrieved and if it is an IContentAsset, its owner is retrieved.
pkID | fkContentTypeID | fkParentID | ArchiveContentGUID | CreatorName | ContentGUID | VisibleInMenu | Deleted | ChildOrderRule | PeerOrder | ExternalFolderID | ContentAssetsID | ContentOwnerID | DeletedBy | DeletedDate | fkMasterLanguageBranchID | ContentPath | ContentType | IsLeafNode |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
7585 | 4 | 4 | NULL | user1 | 6B36BB51-1243-4C42-9A7A-571D086C64A3 | 1 | 0 | 3 | 100 | 0 | NULL | 6F798769-62EA-401A-BDBD-6CFDAD6C732D | NULL | NULL | 15 | .1.4. | 2 | 0 |
In this case, it is
pkID | fkContentTypeID | fkParentID | ArchiveContentGUID | CreatorName | ContentGUID | VisibleInMenu | Deleted | ChildOrderRule | PeerOrder | ExternalFolderID | ContentAssetsID | ContentOwnerID | DeletedBy | DeletedDate | fkMasterLanguageBranchID | ContentPath | ContentType | IsLeafNode |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
7584 | 28 | 2 | NULL | user1 | 6F798769-62EA-401A-BDBD-6CFDAD6C732D | 0 | 1 | 1 | -100 | 0 | 6B36BB51-1243-4C42-9A7A-571D086C64A3 | NULL | user1 | 2015-09-17 14:08:42.147 | 1 | .1.2. | 0 | 1 |
And before returning "true", it is first checked that it should be added. GoTo start