Modify a content block with the Native API
The following example modifies the Content property of a content block with a given ID:
using System;
using System.Linq;
using Telerik.Sitefinity.GenericContent.Model;
using Telerik.Sitefinity.Modules.GenericContent;
namespace SitefinityWebApp
{
public class ModifyContentBlockNativeAPI
{
public void ModifyContentItemNative(Guid masterContentItemId, string newContent)
{
ContentManager manager = ContentManager.GetManager();
// Get the master version.
ContentItem master = manager.GetContent().Where(cI => cI.Id == masterContentItemId).FirstOrDefault();
if (master != null)
{
// Check out the master to get a temp version.
ContentItem temp = manager.Lifecycle.CheckOut(master) as ContentItem;
// Make the modifications to the temp version.
temp.Content = newContent;
// Check in the temp and get the updated master version.
// After the check in the temp version is deleted.
master = manager.Lifecycle.CheckIn(temp) as ContentItem;
// Publish the master.
manager.Lifecycle.Publish(master);
manager.SaveChanges();
}
}
}
}
First, you initialize ContentManager. Then, you use GetContent and filter based on Id to get the master version corresponding to the ID. Then, you call Lifecycle.CheckOut with the master version as an argument to get a temp version of the item. You modify the content of the temp version with newContent. Then, to transfer the changes to the master version, you call Lifecycle.CheckIn with the temp version as argument. By default, calling the CheckIn method deletes the temp version. Then, to transfer the changes to the live version, you call Lifecycle.Publish with the master version as argument. Finally, to save all changes, you call SaveChanges.
NOTE: The example above modifies a content block by the ID of its master version. For more information about working with the ID of the live version, see For developers: Edit content.