private Item CreateItemSimple(string itemName, Item parentItem, Item itemTemplate) { Item result; try { using (new SecurityDisabler()) { Item item = parentItem.Add(itemName, new TemplateID(itemTemplate.ID)); PhotoAlbumObject.PublishOneItem(item); result = item; } } catch (Exception exception) { Log.Error("Cannot create item", exception, this); result = null; } return(result); }
public bool UploadNCreate(FileUpload fileUpload, HttpFileCollection files, string albumID) { bool flag = true; bool result; try { if (fileUpload.PostedFile != null && fileUpload.PostedFile.ContentLength != 0) { if (string.IsNullOrEmpty(albumID)) { this.PageErrorMsg = "You should choose album for uploading"; result = false; return(result); } if (!this.IsMimeTypeAllowed(fileUpload.PostedFile.ContentType, PhotoAlbumConstants.allowedMimeTypes)) { this.PageErrorMsg = "You should upload only jpeg, jpg images or zip archives"; result = false; return(result); } using (new SecurityDisabler()) { Item item = this.CurrentMediaFolder; UploadArgs uploadArgs = new UploadArgs(); uploadArgs.Files = files; uploadArgs.Folder = item.Paths.Path; uploadArgs.Overwrite = false; uploadArgs.Unpack = true; uploadArgs.Versioned = false; uploadArgs.Language = Context.Language; uploadArgs.Destination = UploadDestination.Database; Context.SetActiveSite("shell"); try { if (PipelineFactory.GetPipeline("uiUpload") != null && PipelineFactory.GetPipeline("uiUpload").Processors != null) { foreach (Processor p in from Processor p in PipelineFactory.GetPipeline("uiUpload").Processors where p.Name.Equals("Sitecore.Pipelines.Upload.Done,Sitecore.Kernel,Process") select p) { PipelineFactory.GetPipeline("uiUpload").Processors.Remove(p); } } } catch (Exception exception) { Log.Error("Delete from Pipelines ", exception, this); } PipelineFactory.GetPipeline("uiUpload").Start(uploadArgs); if (uploadArgs.UploadedItems.Count == 1) { PhotoAlbumObject.PublishOneItem(uploadArgs.UploadedItems[0]); } else { if (uploadArgs.UploadedItems.Count > 1) { PhotoAlbumObject.PublishOneItem(uploadArgs.UploadedItems[0].Parent); } } foreach (Item current in uploadArgs.UploadedItems) { current.Editing.BeginEdit(); if (current.Fields["alt"] != null) { current.Fields["alt"].Value = current.Name; } current.Editing.EndEdit(); } Context.SetActiveSite("website"); Item item2 = Factory.GetDatabase(this.DbName).Items[albumID]; Item itemTemplate = Factory.GetDatabase(this.DbName).Items[PhotoAlbumConstants.photoTemplateID]; foreach (Item current2 in uploadArgs.UploadedItems) { string itemName2 = this.CheckExistingItemName(item2, current2.Name, false); this.CreateAndFillItem(itemName2, new Hashtable { { "Title", current2.Name }, { "image", current2 } }, item2, itemTemplate, false); } this.CurrentAlbumItem = item2; result = flag; return(result); } } this.PageErrorMsg = "You should choose zip archive or image"; result = false; } catch (Exception exception) { Log.Error("Cannot upload image(s)", exception, this); result = false; } return(result); }
private Item CreateAndFillItem(string itemName, Hashtable itemFieldsData, Item destionationItem, Item itemTemplate, bool nameExact) { Item result; using (new SecurityDisabler()) { try { string text = this.CheckExistingItemName(destionationItem, itemName, nameExact); if (nameExact && text == string.Empty) { if (itemName == string.Empty) { this.PageErrorMsg = "Enter album name, please"; result = null; } else { this.PageErrorMsg = "The album with name \"" + itemName + "\" already exists"; result = null; } } else { Item item = destionationItem.Add(text, new TemplateID(itemTemplate.ID)); Language[] languages = item.Languages; for (int i = 0; i < languages.Length; i++) { Language language = languages[i]; Item item2 = item.Database.GetItem(item.ID, language); if (item2.Versions.Count == 0) { item2 = item2.Versions.AddVersion(); } item2.Editing.BeginEdit(); foreach (string text2 in itemFieldsData.Keys) { string type; if ((type = item2.Fields[text2].Type) != null && type == "Image") { if (itemFieldsData[text2] is Item) { Item item3 = (Item)itemFieldsData[text2]; MediaItem mediaItem = item3; ImageField imageField = item2.Fields[text2]; imageField.Src = "~/media" + mediaItem.MediaPath + ".ashx"; imageField.MediaPath = mediaItem.MediaPath; imageField.MediaID = mediaItem.ID; imageField.Alt = "photo image"; } } else { item2[text2] = (string)itemFieldsData[text2]; } } item2.Editing.EndEdit(); } PhotoAlbumObject.PublishOneItem(item); result = item; } } catch (Exception exception) { Log.Error("Cannot create or edit the item. Possible there are invalid fieds collection", exception, this); result = null; } } return(result); }