Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
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));
        }