using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using UUN;
using System.Data.SqlClient;
using System.IO;

public partial class Admin_PageSystem_PageItem_Delete : System.Web.UI.Page
{
    private 访问 访问;
    protected void Page_Load(object sender, EventArgs e)
    {
        访问 = new 访问(this.Context);
        访问.开始处理("删除页面项", "网站后台", "删除页面项", new 访问.回调委托(ZhiXing));
        访问.关闭连接();
    }

    private void ZhiXing()
    {
        访问.验证管理员();

        访问.验证权限("8");

        int ID = Convert.ToInt32(Request.QueryString["ID"]);
        bool 是否内容 = Convert.ToBoolean(Request.QueryString["iscontent"]);
        String 项标识 = Request.QueryString["pid"];

        页面 页面 = new 页面(ID, true, 是否内容);
        页面项 项 = 页面.页面项数据[项标识];
        页面.页面项数据.Remove(项标识);
        bool 是否包含下级页面 = false;
        foreach (String 键 in 页面.页面项数据.Keys)
        {
            页面项 _项 = 页面.页面项数据[键];
            if (_项.项类型 == "新的页面")
                是否包含下级页面 = true;
        }
        页面.是否包含子节点 = 是否包含下级页面;
        页面.保存XML代码();
        页面.保存代码(访问);
        页面.保存管理代码(访问);

        if (项.项类型 == "新的页面")
            删除页面(Convert.ToInt32(项.项内容[0]), 是否内容);

        访问统计_管理记录 管理记录 = new 访问统计_管理记录(this.Context, 访问.连接);
        管理记录.记录("删除页面项", 访问.用户["昵称"].ToString());

        Response.Redirect("PageItem.aspx?ID=" + ID + "&iscontent=" + 是否内容 + "&refresh=true");
    }

    private void 删除页面(int ID, bool 是否内容)
    {
        页面 页面 = new 页面(ID, true, 是否内容);

        String 文件夹位置 = "~/Template/" +
            (是否内容 ? "Content" : "Club") +
            "/" + 程序.设置["默认" + (是否内容 ? "" : "社区") + "模板"] + "/";
        File.Delete(Server.MapPath(文件夹位置 + "SystemPage/" + ID + ".xml"));
        File.Delete(Server.MapPath(文件夹位置 + "SystemPage_Aspx/" + ID + ".aspx"));
        File.Delete(Server.MapPath(文件夹位置 + "SystemPage_Aspx/" + ID + ".aspx.cs"));
        File.Delete(Server.MapPath(文件夹位置 + "Adm_SystemPage_Aspx/" + ID + ".aspx"));
        File.Delete(Server.MapPath(文件夹位置 + "Adm_SystemPage_Aspx/" + ID + ".aspx.cs"));

        foreach (String 键 in 页面.页面项数据.Keys)
        {
            页面项 项 = 页面.页面项数据[键];
            if (项.项类型 == "新的页面")
                删除页面(Convert.ToInt32(项.项内容[0]), 是否内容);
        }
    }
}
