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 = Global.KrakenCallbackIds[krakenCallbackId]; Global.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)) { //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)); //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); } } _librariesManager.Provider.SuppressSecurityChecks = false; }
/// <summary> /// Returns an Image object from a Guid /// ** Sitefinitysteve.com Extension ** /// </summary> public static Image GetImage(this Guid imageId) { LibrariesManager manager = LibrariesManager.GetManager(); try{ return((imageId != Guid.Empty) ? manager.GetImage(imageId) : null); }catch (ItemNotFoundException iex) { Logger.Writer.Write(iex); return(null); } }
// GET: MyWidget public ActionResult Index() { var model = new MyWidgetModel(); model.Message = this.Message; model.Flag = this.Flag; model.Enum = this.Enum; model.Number = this.Number; model.MyDate = this.MyDate; LibrariesManager lbmanager = LibrariesManager.GetManager(); var image = lbmanager.GetImage(Guid.Parse(this.Images.ItemIdsOrdered[0])); model.Images = image.MediaUrl; return(View(model)); }
/// <summary> /// Gets the related media URL. /// </summary> /// <param name="item">The DynamicContent.</param> /// <returns>The media's relative Url</returns> public static string GetRelatedMediaUrl(DynamicContent item, string fieldName) { var relatedItem = item.GetRelatedItems(fieldName).FirstOrDefault(); if (relatedItem != null) { var imageId = relatedItem.Id; LibrariesManager manager = LibrariesManager.GetManager(); Telerik.Sitefinity.Libraries.Model.Image image = manager.GetImage(imageId); if (image != null) { return(image.MediaUrl); } } return(null); }
public string CreateSuccessStory(SuccessStoryViewModel submittedStory, string domain) { var message = String.Empty; try { var providerName = String.Empty; var transactionName = $"storyTransaction_{DateTime.Now}"; var versionManager = VersionManager.GetManager(null, transactionName); DynamicModuleManager dynamicModuleManager = DynamicModuleManager.GetManager(providerName, transactionName); Type successStoryType = TypeResolutionService.ResolveType("Telerik.Sitefinity.DynamicTypes.Model.SuccessStories.SuccessStory"); DynamicContent successStoryItem = dynamicModuleManager.CreateDataItem(successStoryType); successStoryItem.SetValue("Title", submittedStory.Title); successStoryItem.SetValue("Description", submittedStory.Description); successStoryItem.SetValue("SummaryDescription", submittedStory.SummaryDescription); successStoryItem.SetValue("ProductsUsed", submittedStory.ProductsUsed); successStoryItem.SetValue("Company", submittedStory.Company); successStoryItem.SetValue("CompanyWebsite", submittedStory.CompanyWebsite); successStoryItem.SetValue("Industry", submittedStory.Industry); LibrariesManager thumbnailManager = LibrariesManager.GetManager(); if (submittedStory.Thumbnail != null) { var fileStream = submittedStory.Thumbnail.InputStream; var imgId = Guid.NewGuid(); CreateImageWithNativeAPI(imgId, submittedStory.Title, fileStream, submittedStory.Thumbnail.FileName, Path.GetExtension(submittedStory.Thumbnail.FileName)); var thumbnailItem = thumbnailManager.GetImage(imgId); if (thumbnailItem != null) { successStoryItem.CreateRelation(thumbnailItem, "Thumbnail"); } } successStoryItem.SetString("UrlName", $"{submittedStory.Title}-{submittedStory.Company}"); successStoryItem.SetValue("Owner", SecurityManager.GetCurrentUserId()); successStoryItem.SetValue("PublicationDate", DateTime.UtcNow); successStoryItem.SetWorkflowStatus(dynamicModuleManager.Provider.ApplicationName, "Draft"); versionManager.CreateVersion(successStoryItem, false); ILifecycleDataItem publishedCarItem = dynamicModuleManager.Lifecycle.Publish(successStoryItem); successStoryItem.SetWorkflowStatus(dynamicModuleManager.Provider.ApplicationName, "Published"); versionManager.CreateVersion(successStoryItem, true); TransactionManager.CommitTransaction(transactionName); message = $"A new Success Story has been submitted. Take a look <a style=\"font-weight:bold;color:blue;\" href=\"{domain}/success-story-details{successStoryItem.ItemDefaultUrl.Value}\">here</a>"; } catch (Exception ex) { Elmah.ErrorSignal.FromCurrentContext().Raise(ex); } return(message); }