/// <summary> /// </summary> private void btnCreateTerm_Click(object sender, EventArgs e) { if (MessageBox.Show("Are you sure?", "Confirm", MessageBoxButtons.YesNo) != DialogResult.Yes) { return; } StartWait(); this.Invoke((MethodInvoker) delegate { while (true) { TreeNode curNode = tvMMD.SelectedNode; if (curNode == null) { break; } if (txtTermName.Text.Trim().Length == 0) { cout("Cannot create term, name is required."); break; } Term newTerm = null; try { if (curNode.Level == 2) { // add term to termset TermSet tSet = MMDHelper.GetObj(txtSiteUrl.Text, curNode.Level, curNode) as TermSet; if (!string.IsNullOrEmpty(MMDHelper.errMsg)) { cout("ERROR", MMDHelper.errMsg); break; } if (GenUtil.IsNull(txtNewTermGuid.Text) || txtNewTermGuid.Text.Trim().ToLower() == NewTermGuidLabel.Trim().ToLower() || !GenUtil.IsGuid(txtNewTermGuid.Text)) { newTerm = tSet.CreateTerm(GenUtil.MmdNormalize(txtTermName.Text), CultureInfo.CurrentCulture.LCID); } else { if (!GenUtil.IsGuid(txtNewTermGuid.Text)) { MessageBox.Show("Cannot create term, invalid new term Guid."); break; } else { newTerm = tSet.CreateTerm(GenUtil.MmdNormalize(txtTermName.Text), CultureInfo.CurrentCulture.LCID, new Guid(txtNewTermGuid.Text)); } } } else if (curNode.Level >= 3) { // add term to term Term term = MMDHelper.GetObj(txtSiteUrl.Text, curNode.Level, curNode) as Term; if (!string.IsNullOrEmpty(MMDHelper.errMsg)) { cout("ERROR", MMDHelper.errMsg); break; } if (GenUtil.IsNull(txtNewTermGuid.Text) || txtNewTermGuid.Text.Trim().ToLower() == NewTermGuidLabel.Trim().ToLower() || !GenUtil.IsGuid(txtNewTermGuid.Text)) { newTerm = term.CreateTerm(GenUtil.MmdNormalize(txtTermName.Text), CultureInfo.CurrentCulture.LCID); } else { if (!GenUtil.IsGuid(txtNewTermGuid.Text)) { MessageBox.Show("Cannot create term, invalid new term Guid."); break; } else { newTerm = term.CreateTerm(GenUtil.MmdNormalize(txtTermName.Text), CultureInfo.CurrentCulture.LCID, new Guid(txtNewTermGuid.Text)); } } } else { MessageBox.Show("Cannot create term in current location, select a termset or term."); break; } if (newTerm != null) { newTerm.IsAvailableForTagging = chkTermIsAvailableForTagging.Checked; // labels if (!GenUtil.IsNull(txtTermLabels.Text)) { foreach (string lbl in GenUtil.MmdNormalize(txtTermLabels.Text).Split(new char[] { ';' })) { if (!GenUtil.IsNull(lbl) && lbl.ToLower() != GenUtil.MmdNormalize(newTerm.Name).ToLower()) { newTerm.CreateLabel(lbl, CultureInfo.CurrentCulture.LCID, false); } } } newTerm.TermStore.CommitAll(); // add term to tree TreeNode newNode = new TreeNode(); newNode.Text = string.Format("{0} [0]", GenUtil.MmdDenormalize(newTerm.Name)); newNode.Name = newTerm.Id.ToString(); curNode.Nodes.Add(newNode); curNode.Expand(); cout("New Term Created"); txtNewTermGuid.Text = NewTermGuidLabel; } } catch (Exception ex) { cout("ERROR creating term", ex.Message); } break; } }); StopWait(); }