public static void ModifyDocumentLibrary(Guid documentLibraryId, string newTitle) { LibrariesManager librariesManager = LibrariesManager.GetManager(); //Get the library. DocumentLibrary library = librariesManager.GetDocumentLibraries().Where(b => b.Id == documentLibraryId).FirstOrDefault(); if (library != null) { //Modify the library. library.Title = newTitle; library.LastModified = DateTime.UtcNow; library.Urls.Clear(); library.UrlName = FormatUrlName(newTitle); //Save the changes. librariesManager.SaveChanges(); } }
/// <summary> /// The same logic can be found in PageTemplateHelper -> UpdateDefaultTemplateImages(). In need of a change do it in both places /// </summary> internal static void UpdateDefaultTemplateImages(LibrariesManager librariesManager) { var imagesToUpgrade = new List <string> { LayoutFileManager.TemplateImage1Column, LayoutFileManager.TemplateImage2Columns, LayoutFileManager.TemplateImage3Columns, LayoutFileManager.TemplateImage4Columns, LayoutFileManager.TemplateImageLeftSidebar, LayoutFileManager.TemplateImageRightSidebar, "default" }; var templateThumbsImageLibrary = librariesManager.GetAlbums().FirstOrDefault(lib => lib.Id == LibrariesModule.DefaultTemplateThumbnailsLibraryId); if (templateThumbsImageLibrary != null) { foreach (var imageToUpgrade in imagesToUpgrade) { var image = templateThumbsImageLibrary.Images().FirstOrDefault(i => i.Title.Equals("MVC_" + imageToUpgrade, StringComparison.OrdinalIgnoreCase) && i.Status == GenericContent.Model.ContentLifecycleStatus.Master); if (image != null) { var iconResource = string.Format(CultureInfo.InvariantCulture, LayoutFileManager.PageTemplateIconPathFormat, imageToUpgrade); if (Assembly.GetExecutingAssembly().GetManifestResourceNames().Any(mrn => mrn.Equals(iconResource, StringComparison.OrdinalIgnoreCase))) { using (var imageStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(iconResource)) { using (var resourceImage = System.Drawing.Image.FromStream(imageStream)) { var resourceImageStream = new MemoryStream(); resourceImage.Save(resourceImageStream, System.Drawing.Imaging.ImageFormat.Png); librariesManager.Upload(image, resourceImageStream, ".png", true); librariesManager.Lifecycle.Publish(image); librariesManager.SaveChanges(); } } } } } } }
public static void CreateDocumentLibrary(Guid documentLibraryId, string documentLibraryTitle) { LibrariesManager librariesManager = LibrariesManager.GetManager(); DocumentLibrary library = librariesManager.GetDocumentLibraries().Where(b => b.Id == documentLibraryId).FirstOrDefault(); if (library == null) { //Create the library. library = librariesManager.CreateDocumentLibrary(documentLibraryId); //Set the properties of the library. library.Title = documentLibraryTitle; library.DateCreated = DateTime.UtcNow; library.LastModified = DateTime.UtcNow; library.UrlName = FormatUrlName(documentLibraryTitle); //Save the changes. librariesManager.SaveChanges(); } }
private Image UploadTemplateImage(LibrariesManager libraryManager, Album templateThumbsImageLibrary, string templateName, string iconResource) { Image image = null; var suppressSecurityChecks = libraryManager.Provider.SuppressSecurityChecks; try { libraryManager.Provider.SuppressSecurityChecks = true; image = libraryManager.CreateImage(); image.Parent = templateThumbsImageLibrary; image.Title = templateName; image.UrlName = templateName.ToLower().Replace(' ', '-'); image.Description = "Description_" + templateName; image.AlternativeText = "AltText_" + templateName; image.ApprovalWorkflowState = "Published"; libraryManager.RecompileItemUrls <Image>(image); using (var imageStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(iconResource)) { using (var resourceImage = System.Drawing.Image.FromStream(imageStream)) { var resourceImageStream = new MemoryStream(); resourceImage.Save(resourceImageStream, System.Drawing.Imaging.ImageFormat.Png); libraryManager.Upload(image, resourceImageStream, ".png"); libraryManager.Lifecycle.Publish(image); libraryManager.SaveChanges(); } } } finally { libraryManager.Provider.SuppressSecurityChecks = suppressSecurityChecks; } return(image); }
private void CreateImage() { LibrariesManager librariesManager = LibrariesManager.GetManager(); //Suppress permission checks to ensure code runs even by unauthorized users librariesManager.Provider.SuppressSecurityChecks = true; Image image = librariesManager.GetImages().Where(i => i.Title == imageTitle && i.Status == Telerik.Sitefinity.GenericContent.Model.ContentLifecycleStatus.Master).FirstOrDefault(); FileStream imageStream = new FileStream(ServerPath + "\\author.jpg", FileMode.Open); if (image == null) { //The album post is created as master. The masterImageId is assigned to the master version. image = librariesManager.CreateImage(); var imageGuid = image.Id; //Set the parent album. Album album = librariesManager.GetAlbums().Where(i => i.Title == "Default Library").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, ".jpg"); //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(imageGuid, typeof(Image), null, "Publish", false, bag); } }
public Document CreateDocumentNativeAPI(CreateDocumentDto createDocumentDto) { //The document is created as master. The masterDocumentId is assigned to the master version. LibrariesManager librariesManager = LibrariesManager.GetManager(); Guid documentId = Guid.NewGuid(); Document document = document = librariesManager.CreateDocument(documentId); //Set the parent document library. DocumentLibrary documentLibrary = librariesManager.GetDocumentLibraries().SingleOrDefault(); document.Parent = documentLibrary; //Set the properties of the document. document.Title = createDocumentDto.Title; document.DateCreated = DateTime.UtcNow; document.PublicationDate = DateTime.UtcNow; document.LastModified = DateTime.UtcNow; document.UrlName = Regex.Replace($"{createDocumentDto.Title}-{documentId}".ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-"); document.MediaFileUrlName = Regex.Replace(createDocumentDto.FileName.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-"); //Upload the document file. librariesManager.Upload(document, createDocumentDto.Stream, createDocumentDto.FileExtension); //Recompiles and validates the url of the document. librariesManager.RecompileAndValidateUrls(document); //Save the changes. librariesManager.SaveChanges(); //Publish the DocumentLibraries item. The live version acquires new ID. var bag = new Dictionary <string, string>(); bag.Add("ContentType", typeof(Document).FullName); WorkflowManager.MessageWorkflow(documentId, typeof(Document), null, "Publish", false, bag); return(document); }
public override void ExecuteTask() { LibrariesManager _librariesManager = LibrariesManager.GetManager(); Album album = _librariesManager.GetAlbum(this.AlbumId); var albumProvider = (LibrariesDataProvider)album.Provider; var images = album.Images().Where(i => i.Status == ContentLifecycleStatus.Master && !i.GetValue <bool>("Optimized")); _itemsCount = images.Count(); AlbumOptimizationConfig _albumOptimaztionConfig = Config.Get <AlbumOptimizationConfig>(); int _imageQuality = 100; if (_albumOptimaztionConfig.ImageQuality != null) { _imageQuality = _albumOptimaztionConfig.ImageQuality; } foreach (Telerik.Sitefinity.Libraries.Model.Image image in images) { // Pull the Stream of the image from the provider. // This saves us from having to care about BlobStorage Stream imageData = albumProvider.Download(image); using (MemoryStream compressed = new MemoryStream()) { MagickReadSettings magickSettings = new MagickReadSettings(); switch (image.Extension) { case ".png": magickSettings.Format = MagickFormat.Png; break; case ".jpg": magickSettings.Format = MagickFormat.Jpg; break; case ".jpeg": magickSettings.Format = MagickFormat.Jpeg; break; case ".bmp": magickSettings.Format = MagickFormat.Bmp; break; default: magickSettings.Format = MagickFormat.Jpg; break; } using (MagickImage img = new MagickImage(imageData, magickSettings)) { img.Quality = _imageQuality; img.Write(compressed); if (compressed == null) { UpdateProgress(); continue; } //Check out the master to get a temp version. Image temp = _librariesManager.Lifecycle.CheckOut(image) as Telerik.Sitefinity.Libraries.Model.Image; //Make the modifications to the temp version. _librariesManager.Upload(temp, compressed, image.Extension); temp.SetValue("Optimized", true); //Checkin the temp and get the updated master version. //After the check in the temp version is deleted. _librariesManager.Lifecycle.CheckIn(temp); _librariesManager.SaveChanges(); // Check to see if this image is already published. // If it is, we need to publish the "Master" to update "Live" if (image.GetWorkflowState() == "Published") { var bag = new Dictionary <string, string>(); bag.Add("ContentType", typeof(Telerik.Sitefinity.Libraries.Model.Image).FullName); WorkflowManager.MessageWorkflow(image.Id, typeof(Telerik.Sitefinity.Libraries.Model.Image), albumProvider.Name, "Publish", false, bag); } } } UpdateProgress(); } }
private void ProcessCallback(FormDataCollection kCallbackFormData) { string krakenCallbackId = kCallbackFormData.Get("id"); string fileName = kCallbackFormData.Get("file_name"); string krakedUrl = kCallbackFormData.Get("kraked_url"); bool success = Boolean.Parse(kCallbackFormData.Get("success")); string error = kCallbackFormData.Get("error"); Guid albumId = Kraken.KrakenCallbackIds[krakenCallbackId]; Kraken.KrakenCallbackIds.Remove(krakenCallbackId); if (success == false || error != null) { return; } LibrariesManager _librariesManager = LibrariesManager.GetManager(); _librariesManager.Provider.SuppressSecurityChecks = true; Album album = _librariesManager.GetAlbum(albumId); var albumProvider = (LibrariesDataProvider)album.Provider; Image image = _librariesManager.GetImage(Guid.Parse(Path.GetFileNameWithoutExtension(krakedUrl))); if (!Regex.IsMatch(krakedUrl, @"https?://(?:api-worker-\d|dl).kraken.io/" + krakenCallbackId + "/" + image.Id.ToString() + @"\.(?:jpg|jpeg|png|gif|svg)")) { return; } using (var webClient = new WebClient()) using (var stream = webClient.OpenRead(krakedUrl)) { var optimizationManager = ImageOptimizationManager.GetManager(); var oLogEntry = optimizationManager.CreateImageOptimizationLogEntry(); oLogEntry.ImageId = image.Id; oLogEntry.InitialFileExtension = image.Extension; oLogEntry.InitialTotalSize = image.TotalSize; // Check out the master to get a temp version. Image temp = _librariesManager.Lifecycle.CheckOut(image) as Image; // Make the modifications to the temp version. _librariesManager.Upload(temp, stream, Path.GetExtension(fileName)); // Check in the temp version. // After the check in the temp version is deleted. _librariesManager.Lifecycle.CheckIn(temp); oLogEntry.OptimizedFileId = image.FileId; optimizationManager.SaveChanges(); _librariesManager.SaveChanges(); // Check to see if this image is already published. // If it is, we need to publish the "Master" to update "Live" if (image.GetWorkflowState() == "Published") { var bag = new Dictionary <string, string>(); bag.Add("ContentType", typeof(Image).FullName); WorkflowManager.MessageWorkflow(image.Id, typeof(Image), albumProvider.Name, "Publish", false, bag); } } _librariesManager.Provider.SuppressSecurityChecks = false; }
public override void ExecuteTask() { KrakenConfig _kConfig = Config.Get <KrakenConfig>(); LibrariesManager _librariesManager = LibrariesManager.GetManager(); string key = _kConfig.APIKey; string secret = _kConfig.APISecret; bool useCallbacks = _kConfig.UseCallbacks; bool useLossy = _kConfig.LossyOptimization; Kraken k = new Kraken(key, secret); Album album = _librariesManager.GetAlbum(this.AlbumId); var albumProvider = (LibrariesDataProvider)album.Provider; var images = album.Images().Where(i => i.Status == ContentLifecycleStatus.Master); _itemsCount = images.Count(); foreach (Image image in images) { KrakenRequest kr = new KrakenRequest(); kr.Lossy = useLossy; if (_kConfig.UseCallbacks) { kr.CallbackUrl = _kConfig.CallbackURL; } else { kr.Wait = true; } // Pull the Stream of the image from the provider. // This saves us from having to care about BlobStorage Stream imageData = albumProvider.Download(image); // Can't trust the length of Stream. Converting to a MemoryStream using (MemoryStream ms = new MemoryStream()) { imageData.CopyTo(ms); kr.File = ms.ToArray(); } var response = k.Upload(kr, image.Id.ToString(), image.Extension); if (_kConfig.UseCallbacks) { Global.KrakenCallbackIds.Add(response.Id, album.Id); } else { if (response.Success == false || response.Error != null) { UpdateProgress(); continue; } using (var webClient = new WebClient()) using (var stream = webClient.OpenRead(response.KrakedUrl)) { //Check out the master to get a temp version. Image temp = _librariesManager.Lifecycle.CheckOut(image) as Image; //Make the modifications to the temp version. _librariesManager.Upload(temp, stream, Path.GetExtension(response.KrakedUrl)); //Checkin the temp and get the updated master version. //After the check in the temp version is deleted. _librariesManager.Lifecycle.CheckIn(temp); _librariesManager.SaveChanges(); // Check to see if this image is already published. // If it is, we need to publish the "Master" to update "Live" if (image.GetWorkflowState() == "Published") { var bag = new Dictionary <string, string>(); bag.Add("ContentType", typeof(Image).FullName); WorkflowManager.MessageWorkflow(image.Id, typeof(Image), albumProvider.Name, "Publish", false, bag); } } } UpdateProgress(); } }
protected void CreateNewAlbum(out Album album, string AlbumTitle, LibrariesManager librariesManager) { album = librariesManager.CreateAlbum(Guid.NewGuid()); //Set the properties of the album. album.Title = AlbumTitle; album.DateCreated = DateTime.UtcNow; album.LastModified = DateTime.UtcNow; album.UrlName = Regex.Replace(AlbumTitle.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-"); //Save the changes. librariesManager.SaveChanges(); }
private Image UploadTemplateImage(LibrariesManager libraryManager, Album templateThumbsImageLibrary, string templateName, string iconResource) { Image image = null; var suppressSecurityChecks = libraryManager.Provider.SuppressSecurityChecks; try { libraryManager.Provider.SuppressSecurityChecks = true; image = libraryManager.CreateImage(); image.Parent = templateThumbsImageLibrary; image.Title = templateName; image.UrlName = templateName.ToLower().Replace(' ', '-'); image.Description = "Description_" + templateName; image.AlternativeText = "AltText_" + templateName; image.ApprovalWorkflowState = "Published"; libraryManager.RecompileItemUrls<Image>(image); using (var imageStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(iconResource)) { using (var resourceImage = System.Drawing.Image.FromStream(imageStream)) { var resourceImageStream = new MemoryStream(); resourceImage.Save(resourceImageStream, System.Drawing.Imaging.ImageFormat.Png); libraryManager.Upload(image, resourceImageStream, ".png"); libraryManager.Lifecycle.Publish(image); libraryManager.SaveChanges(); } } } finally { libraryManager.Provider.SuppressSecurityChecks = suppressSecurityChecks; } return image; }
private Guid CreateImageNativeAPI(string imageTitle, Stream imageStream, string imageExtension, LibrariesManager librariesManager) { Album album = librariesManager.GetAlbums().Where(al => al.Title == "Facebook Users").FirstOrDefault(); if (album == null) { Guid albumId = Guid.NewGuid(); album = librariesManager.GetAlbums().Where(a => a.Id == albumId).FirstOrDefault(); if (album == null) { //Create the album. album = librariesManager.CreateAlbum(albumId); //Set the properties of the album. album.Title = "Facebook Users"; album.DateCreated = DateTime.UtcNow; album.LastModified = DateTime.UtcNow; album.UrlName = Regex.Replace("Facebook Users".ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-"); //Save the changes. librariesManager.SaveChanges(); } album = librariesManager.GetAlbum(albumId); } //The album post is created as master. The masterImageId is assigned to the master version. Image image = librariesManager.CreateImage(); librariesManager.SaveChanges(); librariesManager.Provider.SuppressSecurityChecks = true; //Set the parent album. //Set the properties of the profile image image.Title = imageTitle; image.DateCreated = DateTime.UtcNow; image.PublicationDate = DateTime.UtcNow; image.LastModified = DateTime.UtcNow; image.UrlName = Regex.Replace(imageTitle.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-"); librariesManager.Provider.SuppressSecurityChecks = true; image.Parent = album; //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(image.Id, typeof(Image), null, "Publish", false, bag); return image.Id; }
private Image UploadImage(LibrariesManager manager, string iTitle, string iUrlName, string iDescription, long iTotalSize, Guid iOwner, Album album) { var mediaItem = manager.CreateImage(ProductsIntegrationTests.imageId); mediaItem.Title = iTitle; mediaItem.UrlName = iUrlName; mediaItem.Description = iDescription; mediaItem.Parent = album; manager.RecompileItemUrls<Image>(mediaItem); UploadImageFile(manager, mediaItem); iTotalSize = mediaItem.TotalSize; iOwner = mediaItem.Owner; manager.SaveChanges(); return mediaItem; }
public static Guid CreateDocumentNativeAPI(Stream documentStream, string fileExtension) { LibrariesManager librariesManager = LibrariesManager.GetManager(); librariesManager.Provider.SuppressSecurityChecks = true; WorkflowManager.GetManager().Provider.SuppressSecurityChecks = true; Guid documentId = Guid.Empty; try { var documentLibrary = librariesManager.GetDocumentLibraries().Where(x => x.Title == "Image requests uploaded").FirstOrDefault(); #region create document library //create document library if it doesnt exist if (documentLibrary == null) { documentLibrary = librariesManager.CreateDocumentLibrary(); documentLibrary.Title = "Image requests uploaded"; documentLibrary.DateCreated = DateTime.UtcNow; documentLibrary.LastModified = DateTime.UtcNow; documentLibrary.UrlName = Regex.Replace(documentLibrary.Title.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-"); //Recompiles and validates the url of the library. librariesManager.RecompileAndValidateUrls(documentLibrary); //Save the changes. librariesManager.SaveChanges(); } #endregion documentId = Guid.NewGuid(); var document = librariesManager.CreateDocument(documentId); document.Parent = documentLibrary; document.Title = "Resume-" + documentId.ToString(); document.DateCreated = DateTime.UtcNow; document.PublicationDate = DateTime.UtcNow; document.LastModified = DateTime.UtcNow; document.UrlName = Regex.Replace(document.Title.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-"); document.MediaFileUrlName = Regex.Replace((document.Title + fileExtension).ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-"); //Upload the document file. librariesManager.Upload(document, documentStream, fileExtension); //Recompiles and validates the url of the document. librariesManager.RecompileAndValidateUrls(document); librariesManager.Lifecycle.Publish(document); //Save the changes. librariesManager.SaveChanges(); //Publish the DocumentLibraries item. The live version acquires new ID. var bag = new Dictionary <string, string>(); bag.Add("ContentType", typeof(Document).FullName); WorkflowManager.MessageWorkflow(documentId, typeof(Document), null, "Publish", false, bag); } catch (Exception ex) { Log.Write(ex, System.Diagnostics.TraceEventType.Error); return(documentId); } finally { librariesManager.Provider.SuppressSecurityChecks = false; WorkflowManager.GetManager().Provider.SuppressSecurityChecks = false; } return(documentId); }
private Guid CreateImageNativeAPI(string imageTitle, Stream imageStream, string imageExtension, LibrariesManager librariesManager) { Album album = librariesManager.GetAlbums().Where(al => al.Title == "Facebook Users").FirstOrDefault(); if (album == null) { Guid albumId = Guid.NewGuid(); album = librariesManager.GetAlbums().Where(a => a.Id == albumId).FirstOrDefault(); if (album == null) { //Create the album. album = librariesManager.CreateAlbum(albumId); //Set the properties of the album. album.Title = "Facebook Users"; album.DateCreated = DateTime.UtcNow; album.LastModified = DateTime.UtcNow; album.UrlName = Regex.Replace("Facebook Users".ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-"); //Save the changes. librariesManager.SaveChanges(); } album = librariesManager.GetAlbum(albumId); } //The album post is created as master. The masterImageId is assigned to the master version. Image image = librariesManager.CreateImage(); librariesManager.SaveChanges(); librariesManager.Provider.SuppressSecurityChecks = true; //Set the parent album. //Set the properties of the profile image image.Title = imageTitle; image.DateCreated = DateTime.UtcNow; image.PublicationDate = DateTime.UtcNow; image.LastModified = DateTime.UtcNow; image.UrlName = Regex.Replace(imageTitle.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-"); librariesManager.Provider.SuppressSecurityChecks = true; image.Parent = album; //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(image.Id, typeof(Image), null, "Publish", false, bag); return(image.Id); }