Modify news items with the Native API
Use the code example below to modify a news item by the ID of its master version with the Native API.
NOTE: The example below modifies a news item by the ID of its master version. For more information about working with the ID of the live version, see For developers: Edit content.
In the example below, you perform the following:
-
Get an instance of the
NewsManagerclass. -
Get the master version corresponding to the ID.
-
To get a temp version of the item, call
Lifecycle.CheckOutwith the master version as an argument. -
Make all the modifications to the temp version. In this example, you update the title and the URL of the news item.
-
To transfer the changes to the master version, call
Lifecycle.CheckInwith the temp version as argument. -
By default, when calling the
CheckInmethod, the temp version is deleted. -
Call
SaveChangesto persist the changes. -
To publish the news item, call the
MessageWorkflowmethod of theWorkflowManagerclass and pass the required parameters. -
Modify a news item with the Native API
-
C#
using System; using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; using Telerik.Sitefinity.Modules.News; using Telerik.Sitefinity.News.Model; using Telerik.Sitefinity.Workflow; namespace Telerik.Sitefinity.Documentation.CodeSnippets.DevGuide.SitefinityEssentials.Modules.News { public partial class NewsSnippets_ModifyNewsItemNativeAPI { private void ModifyNewsItemNativeAPI(Guid masterNewsId, string newTitle) { NewsManager newsManager = NewsManager.GetManager(); //Get the master version. NewsItem master = newsManager.GetNewsItems().Where(newsItem => newsItem.Id == masterNewsId).FirstOrDefault(); if (master != null) { //Check out the master to get a temp version. NewsItem temp = newsManager.Lifecycle.CheckOut(master) as NewsItem; //Make the modifications to the temp version. temp.Title = newTitle; temp.LastModified = DateTime.UtcNow; temp.Urls.Clear(); temp.UrlName = Regex.Replace(newTitle.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-"); //Recompiles and validates the url of the news item. newsManager.RecompileAndValidateUrls(temp); //Check in the temp and get the updated master version. //After the check in the temp version is deleted. master = newsManager.Lifecycle.CheckIn(temp) as NewsItem; newsManager.SaveChanges(); //Publish the news item. var bag = new Dictionary<string, string>(); bag.Add("ContentType", typeof(NewsItem).FullName); WorkflowManager.MessageWorkflow(masterNewsId, typeof(NewsItem), null, "Publish", false, bag); } } } }