Finding content items
Sitefinity allows you to search for a specific content item. For more information about querying content items by ID, see Querying content items.
To search for a specific content item you can use the Native API or the Fluent API.
The section contains the following:
Search for a content item by title
To search for a specific content item with the specified Title using Native API, you use the ContentManager class:
public ContentItem GetContentItemByTitleNative(string title)
{
ContentManager manager = ContentManager.GetManager();
var contentItem = manager.GetContent().Where(cI => (cI.Title == title && cI.Status == ContentLifecycleStatus.Live)).FirstOrDefault();
return contentItem;
}
First, you initialize ContentManager. Then, you get all content items using GetContent() and filter based on the Title and Status properties.
To search for a specific content item with the specified Title using Fluent API, you use the plural content item facade:
public ContentItem GetContentItemByTitleFluent(string title)
{
ContentItem contentItem = App.WorkWith().ContentItems().Where(cI => (cI.Title == title && cI.Status == ContentLifecycleStatus.Live)).Get().FirstOrDefault();
return contentItem;
}
First, you initialize the plural content item facade using App.WorkWith().ContentItems(). Then, you filter based on the Title and Status properties. Finally, to get the content item, you use the Get method.
Search for a content items by content match
To search for all content items that have the specified string in their content, using Native API, you use the ContentManager class:
public IQueryable<ContentItem> GetContentItemsByContentMatchNative(string contentToSearch)
{
ContentManager manager = ContentManager.GetManager();
IQueryable<ContentItem> contentItems = manager.GetContent()
.Where(cI => (cI.Content.Contains(contentToSearch) && cI.Status == ContentLifecycleStatus.Live));
return contentItems;
}
First, you initialize ContentManager. Then, you get all content items using GetContent() and filter based on the Content and Status properties.
To search for all content items that have the specified string in their content, using Fluent API, you use the plural content item facade:
public IQueryable<ContentItem> GetContentItemsByContentMatchFluent(string contentToSearch)
{
IQueryable<ContentItem> contentItems = App.WorkWith().ContentItems()
.Where(cI => (cI.Content.Contains(contentToSearch) && cI.Status == ContentLifecycleStatus.Live)).Get();
return contentItems;
}
First, you initialize the plural content item facade using App.WorkWith().ContentItems(). Then, you filter based on the Content and Status properties. Finally, to get the content items, you use the Get method.
Search for all content items
To get all content items using Native API, you use the ContentManager class:
public IQueryable<ContentItem> GetAllContentItemsNative()
{
ContentManager manager = ContentManager.GetManager();
IQueryable<ContentItem> allContentItems = manager.GetContent().Where(cI => cI.Status == ContentLifecycleStatus.Live);
return allContentItems;
}
First, you initialize ContentManager. Then, you get all live content items using GetContent() and filter based on the Status property.
To get all content items using Fluent API, you use the plural content item facade:
public IQueryable<ContentItem> GetAllContentItemsFluent()
{
IQueryable<ContentItem> allContentItems = App.WorkWith().ContentItems().Where(cI => cI.Status == ContentLifecycleStatus.Live).Get();
return allContentItems;
}
First, you initialize the plural content item facade using App.WorkWith().ContentItems(). Then, you filter based on the Status property. Finally, to get the content items, you use the Get method.
See Also