Query a PageNode by ID
Native API
To find the PageNode, you use the GetPageNodes method and filter based on the Id property. If the PageNode does not exist, the method returns null.
To find a particular PageNode by ID, use the GetPageNodes method in the following way:
using System;
using System.Linq;
using Telerik.Sitefinity.Modules.Pages;
using Telerik.Sitefinity.Pages.Model;
namespace SitefinityWebApp
{
public class QueryPages_FindPageNodeById_NativeAPI
{
public PageNode FindPageNodeByIdNativeAPI(Guid pageNodeId)
{
PageManager pageManager = PageManager.GetManager();
PageNode node = pageManager.GetPageNodes().Where(n => n.Id == pageNodeId).FirstOrDefault();
return node;
}
}
}
If there is no page node with the specified ID, the GetPageNode method throws an exception of type ItemNotFoundException.
Fluent API
To find a page using the Fluent API, you must use the page facade.
To initialize the page facade, you use App.WorkWith().Page() for the singular page facade or App.WorkWith().Pages() for the plural page facade.
To find a specific page node by ID, you use the plural page facade to ensure that the PageNode exists. Then, you use the Get method of the singular facade to get the page node.
Use the following code sample:
using System.Linq;
using Telerik.Sitefinity;
using Telerik.Sitefinity.Pages.Model;
namespace SitefinityWebApp
{
public class QueryPages_FindPagebyUrl_FluentAPI
{
public PageData FindPagebyUrlFluentAPI(string urlName)
{
PageData pageData = null;
var count = 0;
App.WorkWith().Pages().Where(pN => pN.UrlName == urlName).Count(out count);
if (count != 0)
{
pageData = App.WorkWith().Pages().Where(pN => pN.UrlName == urlName).Get().First().Page;
}
return pageData;
}
}
}
NOTE: If you do not ensure that the
PageNodeexists, theGetmethod throws an exception of typeItemNotFoundExceptionwhen there is noPageNodewith the specified ID.