Add and remove taxonomies: Add categories

To add a new category you will need to perform the following:

  1. Use TaxonomyManager which is the manager class for Taxonomies.
  2. Get the Categories taxonomy object.
  3. Create a new Taxon of type HierarchicalTaxon.
  4. Assign the Categories taxonomy to the taxon item that you created.
  5. If you want to assign a parent for the taxon, use the Parent property.
  6. Add the Taxon to the Category taxonomy
  7. Call the manager’s SaveChanges method to persist the changes to the database.

Use the following code sample:

C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using Telerik.Sitefinity.Taxonomies;
using Telerik.Sitefinity.Taxonomies.Model;

namespace Telerik.Sitefinity.Documentation.CodeSnippets.DevGuide.SitefinityEssentials.Taxonomies.Tutorials
{
   public partial class TaxonomiesTutorialsSnippets
   {
       public static void AddCategory(string name, HierarchicalTaxon parentCategory)
       {
           var taxonomyManager = TaxonomyManager.GetManager();

           //Get the Categories taxonomy
           var categoryTaxonomy = taxonomyManager.GetTaxonomies<HierarchicalTaxonomy>().SingleOrDefault(s => s.Name == "Categories");

           if (categoryTaxonomy == null) return;

           //Create a new HierarchicalTaxon
           var taxon = taxonomyManager.CreateTaxon<HierarchicalTaxon>();

           //Associate the item with the hierarchical taxonomy
           taxon.Taxonomy = categoryTaxonomy;

           taxon.Name = Regex.Replace(name.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-");
           taxon.Title = name;
           taxon.UrlName = Regex.Replace(name.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-");

           //Check if the parent has been set
           if (parentCategory != null)
           {
               taxon.Parent = parentCategory;
           }

           //Add it to the list
           categoryTaxonomy.Taxa.Add(taxon);

           taxonomyManager.SaveChanges();
       }
   }
}
Want to learn more?
Enhance your Sitefinity skills by enrolling in free training sessions. Become Sitefinity certified through Progress Education Community to strengthen your professional credentials.
New to Sitefinity?