示例#1
0
        public static string AddTerm(TermQueryModel model)
        {
            var spContext = SharePointContextProvider.Current.GetSharePointContext(HttpContext.Current);

            using (var context = spContext.CreateAppOnlyClientContextForSPHost())
            {
                return(AddTerm(context, model));
            }
        }
示例#2
0
        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);
        }
示例#3
0
        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));
        }
示例#4
0
        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));
        }
示例#5
0
 public ActionResult DeleteTaxonomyTerm(TermQueryModel model)
 {
     return(Json(TaxonomyPickerService.DeleteTerm(model), JsonRequestBehavior.AllowGet));
 }