Esempio n. 1
0
        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);
        }