/// <summary>
        /// Submit event handler. Responsible for creating items.
        /// </summary>
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            Page.Validate();
            if (IsValid)
            {
                foreach (RepeaterItem item in rpBulkItemEditor.Items)
                {
                    if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
                    {
                        var model = new ItemCreatorModel();

                        //Find controls from item in repeater
                        var ParentNode = (TextBox)item.FindControl("txtParentNode");
                        var TemplateID = (TextBox)item.FindControl("txtTemplateID");
                        var NoOfItems  = (TextBox)item.FindControl("txtNoOfItems");
                        var Languages  = (CheckBoxList)item.FindControl("cblLanguage");

                        //Set model values
                        model.NumberOfItems = System.Convert.ToInt32(NoOfItems.Text);
                        model.ParentNode    = ParentNode.Text;
                        model.TemplateId    = TemplateID.Text;
                        model.Languages     = Languages.SelectedValue;

                        //create items in CMS
                        var _itemCreator = new ItemCreator();
                        _itemCreator.ItemGenerator(model);
                    }
                }
            }
        }
        /// <summary>
        /// Method to generate the items as per input in the CMS.
        /// </summary>
        /// <param name="ItemCreatorModel"> model containing parent item Id/Path, Template Id/Path, Languages, no. of items to create etc. </param>
        public string ItemGenerator(ItemCreatorModel model)
        {
            StringBuilder log = new StringBuilder();

            try
            {
                log.Append("Item Creation Process Started\n");

                for (int i = 0; i < model.NumberOfItems; i++)
                {
                    Sitecore.Data.Database masterDB = Sitecore.Data.Database.GetDatabase("master");

                    #region Item Creation
                    bool IsParentId = ID.IsID(model.ParentNode);
                    Item parentItem;
                    if (!IsParentId)
                    {
                        parentItem = masterDB.GetItem(model.ParentNode);
                    }
                    else
                    {
                        parentItem = masterDB.GetItem(ID.Parse(model.ParentNode));
                    }
                    TemplateItem template = masterDB.GetTemplate(model.TemplateId);
                    #endregion End Item Creation

                    Item newItem = parentItem.Add("Item-" + i, template);

                    #region Adding Language Versions

                    var languageCollection = model.Languages.Split(',');

                    foreach (string languageCode in languageCollection)
                    {
                        using (new LanguageSwitcher(languageCode))
                        {
                            Item parent = masterDB.GetItem(newItem.ParentID, Language.Parse(languageCode));

                            Item NewItem = parent.GetChildren().Where(x => x.ID == newItem.ID).FirstOrDefault();

                            NewItem.Editing.BeginEdit();

                            NewItem.Versions.AddVersion();

                            NewItem.Editing.EndEdit();
                        }
                    }

                    log.Append(newItem.Name + " Created successfully with ID: " + newItem.ID + "\n");
                    #endregion
                }
            }
            catch (Exception ex)
            {
                log.Append(ex.Message + "\n");
                log.Append(ex.StackTrace + "\n");
            }

            return(log.ToString());
        }