コード例 #1
0
ファイル: Category.cs プロジェクト: phongdevelopers/my-phong
        /// <summary>
        /// Deletes this category object from database
        /// </summary>
        /// <returns>true if delete successful, false otherwise</returns>
        public bool Delete()
        {
            // DELETE ALL CHILDREN, DELETE NODES THAT DO NOT APPEAR IN OTHER CATEGORIES
            foreach (CatalogNode node in CatalogNodes)
            {
                if (node.CatalogNodeType == CatalogNodeType.Product)
                {
                    Product product = (Product)node.ChildObject;
                    if (product.Categories.Count == 1)
                    {
                        product.Delete();
                    }
                }
                else if (node.CatalogNodeType == CatalogNodeType.Webpage)
                {
                    Webpage webpage = (Webpage)node.ChildObject;
                    if (webpage.Categories.Count == 1)
                    {
                        webpage.Delete();
                    }
                }
                else if (node.CatalogNodeType == CatalogNodeType.Link)
                {
                    Link link = (Link)node.ChildObject;
                    if (link.Categories.Count == 1)
                    {
                        link.Delete();
                    }
                }
                else if (node.CatalogNodeType == CatalogNodeType.Category)
                {
                    Category cat = (Category)node.ChildObject;
                    if (cat != null)
                    {
                        cat.Delete();
                    }
                }
                //DELETE THE CHILD NODE
                node.Delete();
            }

            //GET DATABASE
            Database  database = Token.Instance.Database;
            DbCommand deleteCommand;

            //DELETE ALL PATHS
            deleteCommand = database.GetSqlStringCommand("DELETE FROM ac_CategoryParents WHERE CategoryId=@categoryId");
            database.AddInParameter(deleteCommand, "@categoryId", DbType.Int32, this.CategoryId);
            database.ExecuteNonQuery(deleteCommand);

            //DELETE ALL CATALOG NODES LINKED TO OR FROM THIS CATEGORY
            deleteCommand = database.GetSqlStringCommand("DELETE FROM ac_CatalogNodes WHERE (CategoryId=@categoryId OR (CatalogNodeId=@categoryId AND CatalogNodeTypeId=@catalogNodeTypeId))");
            database.AddInParameter(deleteCommand, "@categoryId", DbType.Int32, this.CategoryId);
            database.AddInParameter(deleteCommand, "@catalogNodeTypeId", System.Data.DbType.Byte, (byte)CatalogNodeType.Category);
            database.ExecuteNonQuery(deleteCommand);

            //DELTE CUSTOM URL INFORMATION IF THERE IS ANY
            CustomUrlDataSource.Delete(this.CategoryId, CatalogNodeType.Category);

            //PERFORM BASE DELETE
            return(this.BaseDelete());
        }
コード例 #2
0
 public static bool Delete(Category category)
 {
     return(category.Delete());
 }