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);
        }