I'm trying to get an overview of a page's history using core services. I require data for all the versions of the page, this includes a couple of things, but I am having difficulties with the page's component presentations.
Here is my code so far:
FullVersionInfo fullVersionInfo;
VersionsFilterData versionsFilter = new VersionsFilterData();
IdentifiableObjectData[] pageVersionList = client.GetList(testPageId, versionsFilter);
foreach (IdentifiableObjectData identifiableObjectData in pageVersionList)
{
PageData pageData = client.Read(identifiableObjectData.Id, new ReadOptions())
as PageData;
foreach (ComponentPresentationData componentPresentationData
in pageData.ComponentPresentations)
{
fullVersionInfo = client.Read(componentPresentationData.Component.IdRef,
new ReadOptions()).VersionInfo as FullVersionInfo;
log.DebugFormat("Component id: {0} version: {1}",
componentPresentationData.Component.IdRef, fullVersionInfo.Version);
fullVersionInfo = client.Read(componentPresentationData.ComponentTemplate.IdRef,
new ReadOptions()).VersionInfo as FullVersionInfo;
log.DebugFormat("Component template id: {0} version: {1}",
componentPresentationData.ComponentTemplate.IdRef,
fullVersionInfo.Version);
}
}
The problem is that I'm always getting the latest versions of the components and the component templates, instead of the versions used on specific versions of a page. Does anybody know how this should be done? In CME when viewing a page's history it can be compared with previous versions, so I believe this to be possible as well.
Any help would be appreciated.