private void CreateImageNativeAPI(Guid masterImageId, Guid parentAlbumId, string imageTitle, Stream imageStream, string imageExtension)
{
LibrariesManager librariesManager = LibrariesManager.GetManager();
Image image = librariesManager.GetImages().Where(i => i.Id == masterImageId).FirstOrDefault();
if (image == null)
{
//The album post is created as master. The masterImageId is assigned to the master version.
image = librariesManager.CreateImage(masterImageId);
//Set the parent album.
Album album = librariesManager.GetAlbums().Where(i => i.Id == parentAlbumId).SingleOrDefault();
image.Parent = album;
//Set the properties of the album post.
image.Title = imageTitle;
image.DateCreated = DateTime.UtcNow;
image.PublicationDate = DateTime.UtcNow;
image.LastModified = DateTime.UtcNow;
image.UrlName = Regex.Replace(imageTitle.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-");
//Upload the image file.
librariesManager.Upload(image, imageStream, imageExtension);
//Save the changes.
librariesManager.SaveChanges();
//Publish the Albums item. The live version acquires new ID.
var bag = new Dictionary<string, string>();
bag.Add("ContentType", typeof(Image).FullName);
WorkflowManager.MessageWorkflow(masterImageId, typeof(Image), null, "Publish", false, bag);
}
}