public static TaxonomyFieldValueCollection GetTaxonomyFieldValues(TermSet termSet, IEnumerable <string> values, bool addIfDoesNotExist, out bool newTermsAdded) { TaxonomyFieldValueCollection termValues = TaxonomyFieldControl.GetTaxonomyCollection(""); newTermsAdded = false; if (values != null && values.Count() > 0) { bool[] newTermAddedResult = new bool[values.Count()]; termValues.AddRange(values.Where(termValue => termValue != null) .Select((value, i) => { bool newTermAdded; TaxonomyFieldValue val = GetTaxonomyFieldValue(termSet, value, addIfDoesNotExist, out newTermAdded); newTermAddedResult[i] = newTermAdded; return(val); })); newTermsAdded = newTermAddedResult.Any(newTermAdded => newTermAdded); } return(termValues); }
public static TaxonomyFieldValue GetTaxonomyFieldValue(SPSite site, TaxonomyField field, string value, out List <int> wssIds) { TaxonomySession taxonomySession = new TaxonomySession(site); TermStore termStore = taxonomySession.TermStores[field.SspId]; TermSet termSet = termStore.GetTermSet(field.TermSetId); wssIds = new List <int>(); TaxonomyFieldValue taxonomyFieldValue = TaxonomyFieldControl.GetTaxonomyValue(value); wssIds.AddRange(TaxonomyField.GetWssIdsOfTerm(site, termStore.Id, termSet.Id, new Guid(taxonomyFieldValue.TermGuid), true, 100)); return(taxonomyFieldValue); }
public static TaxonomyFieldValue GetTaxonomyFieldValue(TermSet termSet, string value, bool addIfDoesNotExist, out bool newTermAdded) { string termVal = TaxonomyItem.NormalizeName((value ?? string.Empty).Trim()); //ReplaceIllegalCharacters((value ?? string.Empty).Trim()); Term term = null; newTermAdded = false; if (termSet != null) { if (!string.IsNullOrEmpty(termVal)) { term = termSet.GetTerms(termVal, termSet.TermStore.DefaultLanguage, true, StringMatchOption.ExactMatch, 1, false).FirstOrDefault(); } if (term == null && termSet.IsOpenForTermCreation && addIfDoesNotExist) { if (!string.IsNullOrEmpty(termVal)) { term = termSet.CreateTerm(termVal, termSet.TermStore.DefaultLanguage); newTermAdded = true; //termSet.TermStore.CommitAll(); } } if (term != null) { string termValue = string.Concat(term.GetDefaultLabel(termSet.TermStore.DefaultLanguage), TaxonomyField.TaxonomyGuidLabelDelimiter, term.Id.ToString()); return(TaxonomyFieldControl.GetTaxonomyValue(termValue)); } } return(null); }
public static TaxonomyFieldValueCollection GetTaxonomyFieldValues(SPSite site, TaxonomyField field, string values, out List <int> wssIds) { if (values == null) { throw new ArgumentNullException("values"); } TaxonomySession taxonomySession = new TaxonomySession(site); TermStore termStore = taxonomySession.TermStores[field.SspId]; TermSet termSet = termStore.GetTermSet(field.TermSetId); TaxonomyFieldValueCollection termValues = new TaxonomyFieldValueCollection(field); termValues.AddRange(TaxonomyFieldControl.GetTaxonomyCollection(values)); wssIds = new List <int>(); foreach (TaxonomyFieldValue termValue in termValues) { wssIds.AddRange(TaxonomyField.GetWssIdsOfTerm(site, termStore.Id, termSet.Id, new Guid(termValue.TermGuid), false, 500)); } return(termValues); }