/// <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()); }
public ID CreateTeamSitecoreItem(Team Team) { try { Sitecore.Data.Database masterDB = Sitecore.Configuration.Factory.GetDatabase(DBNames.Master); Item _rootItem = Sitecore.Context.Database.GetItem(Sitecore.Context.Site.StartPath); Item parentItem = _rootItem.Axes.GetDescendants().ToList().Where(p => p.IsDerived(Templates.TeamsListing.ID)).FirstOrDefault(); string name = ItemUtil.ProposeValidItemName(Team.TeamName); var teamTemplate = masterDB.GetTemplate(Templates.Team.ID); using (new Sitecore.SecurityModel.SecurityDisabler()) { Item newItem = parentItem.Add(name, teamTemplate); try { if (newItem != null) { newItem.Editing.BeginEdit(); newItem[Templates.Team.Fields.Name] = Team.TeamName; newItem[Templates.Team.Fields.EmailAddress] = Team.EmailAddress; newItem[Templates.Team.Fields.LoginName] = Team.LoginName; newItem[Templates.Team.Fields.Password] = Team.Password; newItem.Editing.EndEdit(); } } catch { newItem.Editing.CancelEdit(); } RegisterTeam(Team.LoginName, Team.Password); return(newItem.ID); } } catch (Exception ex) { Sitecore.Diagnostics.Log.Error(ex.Message, ex, this); } return(null); }
private Item createItem(Item destinationParentItem, string templateId, string itemName) { using (new SecurityDisabler()) { if (_db != null) { TemplateItem template = _db.GetTemplate(new ID(templateId)); if (template != null && _db.GetItem(destinationParentItem?.Paths.Path + "/" + itemName) == null) { return(destinationParentItem?.Add(itemName, template)); } else { return(_db.GetItem(destinationParentItem.Paths.Path + "/" + itemName)); } } } return(null); }
public void CreateTeamMemberSitecoreItem(ID TeamId, TeamMember TeamMember) { try { Sitecore.Data.Database masterDB = Sitecore.Configuration.Factory.GetDatabase(DBNames.Master); Item parentItem = masterDB.GetItem(TeamId); string name = ItemUtil.ProposeValidItemName(TeamMember.FullName); var teamTemplate = masterDB.GetTemplate(Templates.TeamMember.ID); using (new Sitecore.SecurityModel.SecurityDisabler()) { Item newItem = parentItem.Add(name, teamTemplate); try { if (newItem != null) { newItem.Editing.BeginEdit(); newItem[Templates.TeamMember.Fields.FullName] = TeamMember.FullName; newItem[Templates.TeamMember.Fields.EmailAddress] = TeamMember.EmailAddress; newItem[Templates.TeamMember.Fields.LinkedInUrl] = TeamMember.LinkedInUrl; newItem[Templates.TeamMember.Fields.TwitterUrl] = TeamMember.TwitterUrl; newItem[Templates.TeamMember.Fields.Country] = TeamMember.Country; newItem.Editing.EndEdit(); } } catch { newItem.Editing.CancelEdit(); } } } catch (Exception ex) { Sitecore.Diagnostics.Log.Error(ex.Message, ex, this); } }
public bool CreateModule(ModuleItem moduleItem) { Sitecore.Diagnostics.Assert.ArgumentNotNull(moduleItem, "Module Item"); using (new Sitecore.SecurityModel.SecurityDisabler()) { Sitecore.Data.Database master = Database.GetDatabase(MasterDatabase); Sitecore.Diagnostics.Assert.ArgumentNotNull(master, "Master Database"); TemplateItem template = master.GetTemplate(IDs.TemplateId); Sitecore.Diagnostics.Assert.ArgumentNotNull(template, "Module Templete"); Item parentItem = master.GetItem(IDs.ModuleFolderId); Sitecore.Diagnostics.Assert.ArgumentNotNull(parentItem, "Module Parent Folder"); string itemName = Sitecore.Data.Items.ItemUtil.ProposeValidItemName($"{moduleItem.Title}-{moduleItem.Author}", "Module Item"); using (new Sitecore.SecurityModel.SecurityDisabler()) { try { Item newItem = parentItem.Add(itemName, template); if (newItem != null) { newItem.Editing.BeginEdit(); newItem.Fields[IDs.Fields.GitHubURL].Value = moduleItem.GitHubURL; newItem.Fields[IDs.Fields.DocumentationURL].Value = moduleItem.DocumentationURL; newItem.Fields[IDs.Fields.Title].Value = moduleItem.Title; newItem.Fields[IDs.Fields.Summary].Value = moduleItem.Summary; newItem.Fields[IDs.Fields.Author].Value = moduleItem.Author; newItem.Fields[IDs.Fields.TestedAgainstSitecoreVersion].Value = moduleItem.TestedAgainstSitecoreVersion; newItem.Fields[IDs.Fields.ProductLine].Value = moduleItem.ProductLine; Sitecore.Data.Fields.DateField releaseDateField = newItem.Fields[IDs.Fields.ReleaseDate]; releaseDateField.Value = DateUtil.ToIsoDate(moduleItem.ReleaseDate); Sitecore.Data.Fields.DateField lastCommitDateField = newItem.Fields[IDs.Fields.LastCommitDate]; lastCommitDateField.Value = DateUtil.ToIsoDate(moduleItem.LastCommitDate); newItem.Fields[IDs.Fields.Stars].Value = moduleItem.Stars.ToString(); newItem.Fields[IDs.Fields.DownloadCount].Value = moduleItem.DownloadCount.ToString(); newItem.Editing.EndEdit(); TagItem(newItem); PublishItem(newItem); return(true); } } catch (System.Exception ex) { Sitecore.Diagnostics.Log.Error($"Could not create new item {itemName}", ex, this); // newItem.Editing.CancelEdit(); } } return(false); } }