using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text.RegularExpressions; using Telerik.Sitefinity.Libraries.Model; using Telerik.Sitefinity.Modules.Libraries; using Telerik.Sitefinity.Workflow; namespace Telerik.Sitefinity.Documentation.CodeSnippets.DevGuide.SitefinityEssentials.Modules.MediaModules.Images { public partial class ImageSnippets { public void ModifyImageNativeAPI(Guid masterImageId, string newTitle, Stream imageStream, string imageFileName, string imageExtension) { LibrariesManager librariesManager = LibrariesManager.GetManager(); //Get the master version. Image master = librariesManager.GetImages().Where(i => i.Id == masterImageId).FirstOrDefault(); if (master != null) { //Check out the master to get a temp version. Image temp = librariesManager.Lifecycle.CheckOut(master) as Image; //Make the modifications to the temp version. temp.Title = newTitle; temp.LastModified = DateTime.UtcNow; temp.UrlName = Regex.Replace(newTitle.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-"); temp.MediaFileUrlName = Regex.Replace(imageFileName.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-"); librariesManager.Upload(temp, imageStream, imageExtension); librariesManager.RecompileItemUrls(temp); //Checkin the temp and get the updated master version. //After the check in the temp version is deleted. master = librariesManager.Lifecycle.CheckIn(temp) as Image; librariesManager.SaveChanges(); //Publish the image. var bag = new Dictionary<string, string>(); bag.Add("ContentType", typeof(Image).FullName); WorkflowManager.MessageWorkflow(masterImageId, typeof(Image), null, "Publish", false, bag); } } } }