public virtual void CreateItem(Registration registration) { Sitecore.Data.Database masterDB = Sitecore.Configuration.Factory.GetDatabase("master"); var eventItemName = StringHelpers.CleanEventName(registration.Event.Name); Item eventItem = masterDB.GetItem($"{eventsPath}{eventItemName}"); if (eventItem == null) { return; } var teamTemplate = masterDB.GetTemplate(_teamTemplate); using (new Sitecore.SecurityModel.SecurityDisabler()) { var teamItemName = StringHelpers.CleanTeamName(registration.Team.TeamName); //No dupes pls. if (masterDB.GetItem($"{eventsPath}{eventItemName}/{teamItemName}") != null) { teamItemName = StringHelpers.CleanTeamName($"{System.Guid.NewGuid().ToString()}_{teamItemName}"); } Item teamItem = eventItem.Add(teamItemName, teamTemplate); if (teamItem != null) { teamItem.Editing.BeginEdit(); teamItem["Team Name"] = registration.Team.TeamName; teamItem["Slogan"] = registration.Team.Slogan; teamItem["Repository Name"] = registration.Team.RepositoryName; teamItem["Repository Url"] = registration.Team.RepositoryUrl; teamItem.Fields[Sitecore.FieldIDs.Workflow].Value = _workflowID; IWorkflow wf = masterDB.WorkflowProvider.GetWorkflow(_workflowID); wf.Start(teamItem); teamItem.Editing.EndEdit(); } var memberTemplate = masterDB.GetTemplate(_participantTemplate); foreach (Participant member in registration.Team.Members) { var participantItemName = StringHelpers.CleanParticipantName(member.Name); Item participantItem = teamItem.Add(participantItemName, memberTemplate); participantItem.Editing.BeginEdit(); participantItem["Participant Name"] = member.Name; participantItem["Email"] = member.Email; participantItem["Github"] = member.Github; participantItem["LinkedIn"] = member.LinkedIn; participantItem["Slack"] = member.Slack; participantItem["Twitter"] = member.Twitter; participantItem["Location"] = member.Location; participantItem.Editing.EndEdit(); } } }
protected override void OnOK(object sender, EventArgs args) { Item selectionItem = this.Treeview.GetSelectionItem(); if (selectionItem != null) { using (new Sitecore.SecurityModel.SecurityDisabler()) { TemplateItem template = master.GetTemplate(Data.ProjectDetails); Item newProject = selectionItem.Add(ProjectName.Value, template); newProject.Editing.BeginEdit(); newProject.Fields[Data.ProjectDetailsName].Value = ProjectName.Value; newProject.Fields[Data.ProjectDetailsDescription].Value = ProjectDescription.Value; if (!string.IsNullOrEmpty(StartDatePicker.Value)) { DateTime projDate = DateTime.Parse(Sitecore.DateUtil.FormatIsoDate(StartDatePicker.Value, "yyyy-MM-dd") + " " + StartTimePicker.Value); newProject.Fields[Data.ProjectDetailsReleaseDate].Value = Sitecore.DateUtil.ToIsoDate(projDate); } newProject.Editing.EndEdit(); } } base.OnOK(sender, args); }