public static PickerTermModel GetPickerTerm(Term term, bool includeChildren = true) { var pTerm = new PickerTermModel() { Name = term.Name, Id = Convert.ToString(term.Id), PathOfTerm = term.PathOfTerm, Level = term.PathOfTerm.Split(';').Length - 1, Terms = new List <PickerTermModel>(), Labels = new List <PickerLabelModel>() }; term.Labels.ToList <Label>().ForEach(l => pTerm.Labels.Add(new PickerLabelModel() { Value = l.Value, IsDefaultForLanguage = l.IsDefaultForLanguage })); if (term.TermsCount > 0 && includeChildren == true) { term.Context.Load(term.Terms, terms => terms.Include(t => t.PathOfTerm, t => t.Id, t => t.Labels.Include(l => l.IsDefaultForLanguage, l => l.Value), t => t.Name, t => t.TermsCount)); term.Context.ExecuteQuery(); term.Terms.ToList <Term>().ForEach(t => pTerm.Terms.Add(GetPickerTerm(t))); } return(pTerm); }
public static string AddTerm(ClientContext clientContext, TermQueryModel model) { var pickerTerm = new PickerTermModel(); if (clientContext != null) { var taxonomySession = TaxonomySession.GetTaxonomySession(clientContext); var termStore = taxonomySession.GetDefaultKeywordsTermStore(); Term parentTerm = null; TermSet termSet = GetParent(termStore, model, out parentTerm); Term newTerm = null; var newTermId = new Guid(model.Id); if (parentTerm != null) { clientContext.Load(parentTerm, t => t.PathOfTerm, t => t.Id, t => t.Labels, t => t.Name, t => t.Terms); clientContext.ExecuteQuery(); newTerm = parentTerm.CreateTerm(model.Name, model.LCID, newTermId); } else { clientContext.Load(termSet); clientContext.ExecuteQuery(); newTerm = termSet.CreateTerm(model.Name, 1033, newTermId); } clientContext.Load(newTerm, t => t.PathOfTerm, t => t.Id, t => t.Labels, t => t.Name); clientContext.ExecuteQuery(); pickerTerm.Name = newTerm.Name; pickerTerm.Id = newTerm.Id.ToString(); pickerTerm.PathOfTerm = newTerm.PathOfTerm; pickerTerm.Level = newTerm.PathOfTerm.Split(';').Length - 1; pickerTerm.Terms = new List <PickerTermModel>(); } return(JsonHelper.Serialize <PickerTermModel>(pickerTerm)); }