private void EditItem(TemplateItem templateItem, Item childItem, CreateTeamEventArgs args) { using (new EditContext(childItem)) { var newItem = childItem.Add(args.Name, templateItem); using (new EditContext(newItem)) { newItem[ID.Parse(Templates.Team.Fields.Name)] = args.Name; newItem[ID.Parse(Templates.Team.Fields.ContactGitHubProfile)] = args.ContactGitHubProfile; newItem[ID.Parse(Templates.Team.Fields.ContactEmail)] = args.ContactEmail; newItem[ID.Parse(Templates.Team.Fields.Country)] = args.Country; newItem.DeleteChildren(); PublishItem(newItem); TemplateItem memberTemplateItem = Sitecore.Configuration.Factory.GetDatabase("master").GetTemplate(ID.Parse(Templates.TeamMember.TemplateId)); foreach (var teammember in args.TeamMembers) { var member = newItem.Add(teammember.Name, memberTemplateItem); using (new EditContext(member)) { member[ID.Parse(Templates.TeamMember.Fields.Name)] = teammember.Name; member[ID.Parse(Templates.TeamMember.Fields.LinkedInProfile)] = teammember.LinkedIn; member[ID.Parse(Templates.TeamMember.Fields.TwitterProfile)] = teammember.Twitter; member[ID.Parse(Templates.TeamMember.Fields.GitHubUser)] = teammember.GitHub; } PublishItem(member); } } SendEmailCampaign(newItem.ID.ToString(), args.Identifier, args.EmailCampaignId); } }
// This methos is used to raise the local event public static void Run(CreateTeamEvent evt) { var args = new CreateTeamEventArgs(evt); Event.RaiseEvent("createteam:remote", new object[] { args }); }