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;
using System.Text.RegularExpressions;

public partial class Admin_YongHu_YongHuZiLiaoJieGou_ShanChu : System.Web.UI.Page
{
    private 访问 访问;
    protected void Page_Load(object sender, EventArgs e)
    {
        访问 = new 访问(this.Context);
        访问.开始处理("删除用户资料结构", "网站后台", "删除用户资料结构", new 访问.回调委托(ZhiXing));
        访问.关闭连接();
    }
    private void 重新编译文件()
    {
        编译文件("Club/ShouGongZhuCe",
            File.ReadAllText(Server.MapPath("~/Data/MoBan/Club/ShouGongZhuCe.txt"), System.Text.Encoding.UTF8),
            "手工注册会员");
        编译文件("Club/YongHu_ChaKan",
            File.ReadAllText(Server.MapPath("~/Data/MoBan/Club/YongHu_ChaKan.txt"), System.Text.Encoding.UTF8),
            "查看用户");
        编译文件("Club/XiuGaiZiLiao",
            File.ReadAllText(Server.MapPath("~/Data/MoBan/Club/XiuGaiZiLiao.txt"), System.Text.Encoding.UTF8),
            "修改资料");
    }
    private void 编译文件(String 位置, String 代码内容, String 文件名称)
    {
        String ASPX代码, CS代码;

        编译器 编译器 = new 编译器(this.Context, 访问.连接, 位置, true);
        编译器.开始执行代码 = 编译器.开始执行代码.Replace("$所在位置$", 文件名称)
            .Replace("$内容类型$", 位置.StartsWith("Club/", StringComparison.OrdinalIgnoreCase) ? "社区其它" : "内容其它")
            .Replace("$内容小类型$", 文件名称);

        CS代码 = 编译器.编译(代码内容, 位置, out ASPX代码);

        File.WriteAllText(Server.MapPath("~/" + 位置 + ".aspx"), ASPX代码, System.Text.Encoding.UTF8);
        File.WriteAllText(Server.MapPath("~/" + 位置 + ".aspx.cs"), CS代码, System.Text.Encoding.UTF8);
    }
    private void 更新用户_资料结构(String 数据名称)
    {
        DataSet 数据 = new DataSet();
        SqlCommand 语句 = new SqlCommand("SELECT [ID],[个人资料] FROM [" + 程序.数据表前缀 + "社区_用户_用户] WHERE [用户类型]='会员' ORDER BY [ID]", 访问.连接);
        SqlDataAdapter 填充 = new SqlDataAdapter(语句);
        填充.Fill(数据, "用户");

        for (int i = 0; i < 数据.Tables[0].Rows.Count; i++)
        {
            DataRow 行 = 数据.Tables[0].Rows[i];
            设置 设置 = new 设置(行["个人资料"].ToString());
            设置.数据项.Remove(数据名称);

            语句 = new SqlCommand("UPDATE [" + 程序.数据表前缀 + "社区_用户_用户] SET [个人资料]=@个人资料 WHERE [ID]=" + 行["ID"], 访问.连接);
            语句.Parameters.Add("@个人资料", SqlDbType.NVarChar).Value = 设置.生成XML();
            语句.ExecuteNonQuery();
        }
    }
    private void ZhiXing()
    {
        访问.验证管理员();
        访问.验证权限("29");
        int ID=Convert.ToInt32(Request.QueryString["ID"]);
        String 数据名称;

        SqlCommand 语句 = new SqlCommand("SELECT [数据名称] FROM [" + 程序.数据表前缀 + "社区_用户_资料结构] WHERE [ID]=" + ID, 访问.连接);
        SqlDataReader 读取 = 语句.ExecuteReader();
        if (读取.Read())
            数据名称 = Convert.ToString(读取["数据名称"]);
        else
        {
            读取.Close();
            throw new Exception("用户资料结构不存在");
        }
        读取.Close();

        语句 = new SqlCommand("DELETE FROM [" + 程序.数据表前缀 + "社区_用户_资料结构] WHERE [ID]=" + ID, 访问.连接);
        语句.ExecuteNonQuery();

        访问统计_管理记录 管理记录 = new 访问统计_管理记录(this.Context, 访问.连接);
        管理记录.记录("删除用户资料结构[" + 数据名称 + "]", 访问.用户["昵称"].ToString());
        //重新编译文件();
        更新用户_资料结构(数据名称);

        Response.Redirect("YongHuZiLiaoJieGou.aspx");
    }
}
