/// <summary>
        /// Delete a product
        /// </summary>
        /// <param name="product">Product to delete</param>
        public override void DeleteProduct(ProductItem product)
        {
            var scope = this.GetContext();

            this.ClearContentLinks(product);


            ////remove the item from the parent list of inheritors
            //var securityRoot = this.GetSecurityRoot();
            //if (securityRoot != null)
            //{
            //    List<PermissionsInheritanceMap> parentInheritors = securityRoot.PermissionChildren.Where(c => c.ChildObjectId == product.Id).ToList();
            //    for (int inheritor = 0; inheritor < parentInheritors.Count(); inheritor++)
            //    {
            //        securityRoot.PermissionChildren.Remove(parentInheritors[inheritor]);
            //    }
            //}
            ////remove the relevant permissions
            this.providerDecorator.DeletePermissions(product);
            this.ClearLifecycle(product, this.GetProducts());
            if (scope != null)
            {
                scope.Remove(product);
            }

            this.DeleteItemComments(product.GetType(), product.Id);
        }