protected override bool Execute(string data, FormSubmitContext formSubmitContext) { var shortname = ((StringInputViewModel)formSubmitContext.Fields.FirstOrDefault(f => f.Name == "ShortName")).Value; var title = ((StringInputViewModel)formSubmitContext.Fields.FirstOrDefault(f => f.Name == "Title")).Value; var description = ((StringInputViewModel)formSubmitContext.Fields.FirstOrDefault(f => f.Name == "Description")).Value; using (new SecurityDisabler()) { var item = _rootItem.Add(shortname, _templateId); var membersListId = _xconnectService.CreateList($"{shortname} Members"); var organizersListId = _xconnectService.CreateList($"{shortname} Organizers"); item.Editing.BeginEdit(); item["Title"] = title; item["Description"] = description; item["Members"] = new ID(membersListId).ToString(); item["Organizers"] = new ID(organizersListId).ToString(); item.Editing.AcceptChanges(); var email = Sitecore.Analytics.Tracker.Current.Contact.Identifiers.FirstOrDefault(i => i.Source == Constants.XConnectSourceName)?.Identifier; _xconnectService.SubscribeContact(email, new List <Guid> { membersListId, organizersListId }); } return(true); }
protected override bool Execute(string data, FormSubmitContext formSubmitContext) { var itemId = ((StringInputViewModel)formSubmitContext.Fields.FirstOrDefault(f => f.Name == "ItemId")).Value; var host = ((StringInputViewModel)formSubmitContext.Fields.FirstOrDefault(f => f.Name == "Host")).Value; var title = ((StringInputViewModel)formSubmitContext.Fields.FirstOrDefault(f => f.Name == "Title")).Value; var description = ((MultipleLineTextViewModel)formSubmitContext.Fields.FirstOrDefault(f => f.Name == "Description")).Value; var date = ((DateViewModel)formSubmitContext.Fields.FirstOrDefault(f => f.Name == "Date")).Value; var address = ((MultipleLineTextViewModel)formSubmitContext.Fields.FirstOrDefault(f => f.Name == "Address")).Value; using (new SecurityDisabler()) { var rootItem = _database.GetItem(itemId); var item = rootItem.Add(title, _templateId); var attendeesListId = _xconnectService.CreateList($"{item.Name} - {title} Attendees"); item.Editing.BeginEdit(); item["Host"] = host; item["Title"] = title; item["Description"] = description; item["Date"] = Sitecore.DateUtil.ToIsoDate(date.Value); item["Address"] = address; item["Attendees"] = new ID(attendeesListId).ToString(); item.Editing.AcceptChanges(); var email = Sitecore.Analytics.Tracker.Current.Contact.Identifiers.FirstOrDefault(i => i.Source == Constants.XConnectSourceName)?.Identifier; _xconnectService.SubscribeContact(email, new List <Guid> { attendeesListId }); } return(true); }