public static void CreateDepartment(string name, string description, string parent)
{
TaxonomyManager taxonomyManager = TaxonomyManager.GetManager();
HierarchicalTaxonomy departments = taxonomyManager.GetTaxonomies<HierarchicalTaxonomy>().Where(t => t.Name == "Departments").SingleOrDefault();
if (departments != null)
{
HierarchicalTaxon department = taxonomyManager.CreateTaxon<HierarchicalTaxon>();
department.Name = Regex.Replace(name.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-");
department.Title = name;
department.Description = description;
department.UrlName = department.Name;
department.Taxonomy = departments;
if (!String.IsNullOrEmpty(parent))
{
HierarchicalTaxon parentDepartment = departments.Taxa.Where(t => t.Title == parent).SingleOrDefault() as HierarchicalTaxon;
if (parentDepartment != null)
{
department.Parent = parentDepartment;
parentDepartment.Subtaxa.Add(department);
}
}
taxonomyManager.SaveChanges();
}
}