/// <summary>
 /// Removes a sub-category from this category
 /// </summary>
 /// <param name="category">Category to remove</param>
 public void RemoveSubCategory( Category category )
 {
     Arguments.CheckNotNull( category, "category" );
     if ( category.ParentCategory != this )
     {
         throw new ArgumentException( string.Format( "Category \"{0}\" was not a sub-category of \"{1}\", and cannot be removed", category.Name, Name ), "category" );
     }
     category.ChangeParentCategory( null );
 }
 /// <summary>
 /// Adds a sub-category to this category
 /// </summary>
 /// <param name="category">Category to add</param>
 public void AddSubCategory( Category category )
 {
     Arguments.CheckNotNull( category, "category" );
     category.ChangeParentCategory( this );
 }