public static string AddTerm(TermQueryModel model) { var spContext = SharePointContextProvider.Current.GetSharePointContext(HttpContext.Current); using (var context = spContext.CreateAppOnlyClientContextForSPHost()) { return(AddTerm(context, model)); } }
public static TermSet GetParent(TermStore termStore, TermQueryModel model, out Term parentTerm) { TermSet termSet = null; parentTerm = null; if (string.IsNullOrEmpty(model.TermSetId)) { parentTerm = termStore.GetTerm(new Guid(model.ParentTermId)); } else { termSet = termStore.GetTermSet(new Guid(model.TermSetId)); } return(termSet); }
public static string DeleteTerm(ClientContext clientContext, TermQueryModel model) { var pickerTermSet = new PickerTermSetModel(); //var searchString = (string)HttpContext.Current.Request["SearchString"]; if (clientContext != null) { //Get terms from the 'Keywords' termset for autocomplete suggestions. // It might be a good idea to cache these values. var taxonomySession = TaxonomySession.GetTaxonomySession(clientContext); var termStore = taxonomySession.GetDefaultKeywordsTermStore(); var termToDelete = termStore.GetTerm(new Guid(model.Id)); clientContext.Load(termToDelete); clientContext.ExecuteQuery(); termToDelete.DeleteObject(); clientContext.ExecuteQuery(); var termSetId = new Guid(model.TermSetId); var termSet = termStore.GetTermSet(termSetId); clientContext.Load(termSet, ts => ts.Id, ts => ts.IsOpenForTermCreation, ts => ts.CustomSortOrder, ts => ts.Name, ts => ts.Terms.Include(t => t.PathOfTerm, t => t.Id, t => t.Labels.Include(l => l.IsDefaultForLanguage, l => l.Value), t => t.Name, t => t.TermsCount)); clientContext.ExecuteQuery(); pickerTermSet.Id = termSet.Id.ToString().Replace("{", string.Empty).Replace("}", string.Empty); pickerTermSet.Name = termSet.Name; pickerTermSet.IsOpenForTermCreation = termSet.IsOpenForTermCreation; pickerTermSet.CustomSortOrder = termSet.CustomSortOrder; pickerTermSet.Terms = new List <PickerTermModel>(); foreach (var term in termSet.Terms.ToList <Term>()) { pickerTermSet.Terms.Add(GetPickerTerm(term)); } } return(JsonHelper.Serialize <PickerTermSetModel>(pickerTermSet)); }
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)); }
public ActionResult DeleteTaxonomyTerm(TermQueryModel model) { return(Json(TaxonomyPickerService.DeleteTerm(model), JsonRequestBehavior.AllowGet)); }