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:

  1. Get an instance of the NewsManager class.

  2. Get the master version corresponding to the ID.

  3. To get a temp version of the item, call Lifecycle.CheckOut with the master version as an argument.

  4. Make all the modifications to the temp version.  In this example, you update the title and the URL of the news item.

  5. To transfer the changes to the master version, call Lifecycle.CheckIn with the temp version as argument.

  6. By default, when calling the CheckIn method, the temp version is deleted.

  7. Call SaveChanges to persist the changes.

  8. To publish the news item, call the MessageWorkflow method of the WorkflowManager class and pass the required parameters.

  9. Modify a news item with the Native API

  10. 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);
                 }
             }
         }
     }
     
Want to learn more?
Enhance your Sitefinity skills by enrolling in free training sessions. Become Sitefinity certified through Progress Education Community to strengthen your professional credentials.
New to Sitefinity?