public List <string> GetTaxonNamesByTaxonomy(string taxonomyName) { TaxonomyManager manager = TaxonomyManager.GetManager(); var taxonomy = manager.GetTaxonomies <FlatTaxonomy>().Where(t => t.Name == taxonomyName).Single(); return(taxonomy.Taxa .Select(x => x.Name) .ToList()); }
public List <Guid> GetTaxonIdsByTaxonomy(List <string> taxonNames, string taxonomyName) { TaxonomyManager manager = TaxonomyManager.GetManager(); var taxonomy = manager.GetTaxonomies <FlatTaxonomy>().Where(t => t.Name == taxonomyName).Single(); return(taxonomy.Taxa .Where(x => taxonNames.Contains(x.Name)) .Select(x => x.Id) .ToList()); }
/// <summary> /// Generic Taxon control, use GetCategories or GetTags for the defaults /// </summary> /// <returns>IQueryable<HierarchicalTaxon></returns> public static List <HierarchicalTaxon> GetHierarchicalTaxons(this DynamicContent item, string fieldName, string taxonomyName) { var categories = item.GetValue <TrackedList <Guid> >(fieldName); TaxonomyManager manager = TaxonomyManager.GetManager(); var taxonomyParent = manager.GetTaxonomies <HierarchicalTaxonomy>().SingleOrDefault(x => x.Name == taxonomyName); var taxons = taxonomyParent.Taxa.Where(x => categories.Contains(x.Id)).Select(x => (HierarchicalTaxon)x); return(taxons.ToList()); }
private void migrateTags(Entry post, BlogPost blogPost, BlogsManager blogsManager) { TaxonomyManager taxonomyManager = new TaxonomyManager(); var tax = taxonomyManager.GetTaxonomies<FlatTaxonomy>().Where(t => t.Name == "Tags").SingleOrDefault(); foreach (Category tag in post.Categories.Where(c => c.CategoryType == CategoryType.Unknown)) { var taxon = taxonomyManager.GetTaxa<FlatTaxon>().Where(t => t.Title == tag.Term).FirstOrDefault(); if (taxon == null) { taxon = taxonomyManager.CreateTaxon<FlatTaxon>(); taxon.Name = tag.Term; taxon.Title = tag.Term; tax.Taxa.Add(taxon); taxonomyManager.SaveChanges(); } blogPost.Organizer.AddTaxa("Tags", taxon.Id); blogsManager.SaveChanges(); } }
private void migrateTags(Entry post, BlogPost blogPost, BlogsManager blogsManager) { TaxonomyManager taxonomyManager = new TaxonomyManager(); var tax = taxonomyManager.GetTaxonomies <FlatTaxonomy>().Where(t => t.Name == "Tags").SingleOrDefault(); foreach (Category tag in post.Categories.Where(c => c.CategoryType == CategoryType.Unknown)) { var taxon = taxonomyManager.GetTaxa <FlatTaxon>().Where(t => t.Title == tag.Term).FirstOrDefault(); if (taxon == null) { taxon = taxonomyManager.CreateTaxon <FlatTaxon>(); taxon.Name = tag.Term; taxon.Title = tag.Term; tax.Taxa.Add(taxon); taxonomyManager.SaveChanges(); } blogPost.Organizer.AddTaxa("Tags", taxon.Id); blogsManager.SaveChanges(); } }
private FlatTaxonomy GetFlatTaxonomy(string taxonomyName) { var taxonomy = manager.GetTaxonomies <FlatTaxonomy>().Where(t => t.Name == taxonomyName).FirstOrDefault(); return(taxonomy); }
/// <summary> /// Adds a custom field to Press article /// </summary> /// <param name="fieldname">Name of the field</param> /// <param name="isHierarchicalTaxonomy">is hierarchical taxonomy</param> public void AddCustomTaxonomyToContext(string fieldname, bool isHierarchicalTaxonomy) { Type pressArticleType = TypeResolutionService.ResolveType("Telerik.Sitefinity.DynamicTypes.Model.PressRelease.PressArticle"); if (pressArticleType == null) { throw new ArgumentException("PressArticle type can't be resolved."); } var context = new CustomFieldsContext(pressArticleType); TaxonomyManager manager = TaxonomyManager.GetManager(); Guid taxonomyId; if (isHierarchicalTaxonomy == true) { var taxonomy = manager.GetTaxonomies <HierarchicalTaxonomy>().Where(t => t.Title == fieldname).SingleOrDefault(); if (taxonomy != null) { taxonomyId = taxonomy.Id; } else { throw new ArgumentException("The taxonomy '" + fieldname + "' does not exist in the system"); } } else { var taxonomy = manager.GetTaxonomies <FlatTaxonomy>().Where(t => t.Title == fieldname).SingleOrDefault(); if (taxonomy != null) { taxonomyId = taxonomy.Id; } else { throw new ArgumentException("The taxonomy '" + fieldname + "' does not exist in the system"); } } UserFriendlyDataType userFriendlyDataType = UserFriendlyDataType.Classification; var field = new WcfField() { Name = fieldname, ContentType = "Telerik.Sitefinity.DynamicTypes.Model.PressRelease.PressArticle", FieldTypeKey = userFriendlyDataType.ToString(), IsCustom = true, // Field definition Definition = new WcfFieldDefinition() { Title = fieldname, FieldName = fieldname.ToLower(), FieldType = isHierarchicalTaxonomy ? typeof(HierarchicalTaxonField).FullName : typeof(FlatTaxonField).FullName, TaxonomyId = taxonomyId.ToString(), AllowMultipleSelection = true, } }; var fields = new Dictionary <string, WcfField>(); fields.Add(field.FieldTypeKey, field); context.AddOrUpdateCustomFields(fields, pressArticleType.Name); context.SaveChanges(); }