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

public partial class Admin_YeMian_XiuGaiWenJian_ : System.Web.UI.Page
{
    private 访问 访问;
    protected String 加载代码;
    protected String 文件夹;
    protected String 文件;
    protected String 编译类型;
    protected void Page_Load(object sender, EventArgs e)
    {
        访问 = new 访问(this.Context);
        访问.开始处理("修改WAP文件", "网站后台", "修改WAP文件", new 访问.回调委托(ZhiXing));
        访问.关闭连接();
    }

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

        String 标题信息 = Request.QueryString["ti"];
        bool 是否WAP网页 = 标题信息.StartsWith("wap_");
        文件夹 = 标题信息.Substring(是否WAP网页?4:3);
        Label1.Text = 文件夹;
        文件 = 文件夹.Substring(文件夹.LastIndexOf('/') + 1);
        文件 = 文件.Substring(0, 文件.Length - 5);
        文件夹 = 文件夹.Substring(0, 文件夹.LastIndexOf('/') + 1);

        if (this.IsPostBack)
        {
            访问.验证权限("8");
            String 页面名称 = YeMianMingChen.Text;
            String 文件名称 = WenJianMingChen.Text;

            if (页面名称.Length < 1 || 页面名称.Length > 50)
                throw new Exception("页面名称的长度只能在1-50之间");
            if (文件名称.Length < 1 || 文件名称.Length > 50)
                throw new Exception("文件名称的长度只能在1-50之间");

            String 文件夹位置;
            if (文件夹.StartsWith("/club/", StringComparison.OrdinalIgnoreCase))
                文件夹位置 = 程序.安装位置 + "Template/Club/" + 程序.设置["默认社区模板"] + "/WapPage" + 文件夹.Substring(5);
            else
                文件夹位置 = 程序.安装位置 + "Template/Content/" + 程序.设置["默认模板"] + "/WapPage" + 文件夹;

            FileInfo FI = new FileInfo(Server.MapPath(文件夹位置 + 文件 + ".txt"));
            StreamReader 读取 = FI.OpenText();
            String 第一行内容 = 读取.ReadLine();
            编译类型 = 读取.ReadLine();
            String 文件内容_ = 读取.ReadToEnd();
            读取.Close();
            bool 是否3G = 第一行内容.StartsWith("3G_");
            String 文件名称_ = 是否3G ? 第一行内容.Substring(3) : 第一行内容.Substring(4);
            String 文件内容 = 是否3G ? "3G_" : "WAP_";
            文件内容 += 页面名称;
            文件内容 += "\r\n";
            文件内容 += 编译类型 + "\r\n";
            文件内容 += 文件内容_;
            File.WriteAllText(Server.MapPath(文件夹位置 + 文件 + ".txt"), 文件内容, Encoding.UTF8);

            if (文件 != 文件名称)
            {
                if (File.Exists(Server.MapPath(文件夹位置 + 文件名称 + ".txt")))
                    throw new Exception("此文件名不能使用");
                new FileInfo(Server.MapPath(文件夹位置 + 文件 + ".txt"))
                    .MoveTo(Server.MapPath(文件夹位置 + 文件名称 + ".txt"));

                String ASPX代码, CS代码;

                编译器 编译 = new 编译器(this.Context, 访问.连接, "页面相关", 是否WAP网页);
                编译.开始执行代码 = 编译.开始执行代码.Replace("$所在位置$", 页面名称)
                    .Replace("$内容类型$", "网站页面")
                    .Replace("$内容子类型$", 页面名称);
                String 编译代码=文件内容_;
                CS代码 = 编译.编译(编译代码,
                    文件夹 + 文件名称, out ASPX代码);
                File.Delete(Server.MapPath(程序.安装位置 + 文件夹.Substring(1) + 文件 + ".aspx"));
                File.Delete(Server.MapPath(程序.安装位置 + 文件夹.Substring(1) + 文件 + ".aspx.cs"));
                //throw new Exception(程序.安装位置 + 文件夹.Substring(1) + 文件名称 + ".aspx");
                File.WriteAllText(Server.MapPath(程序.安装位置 + 文件夹.Substring(1) + 文件名称 + ".aspx"), ASPX代码, Encoding.UTF8);
                File.WriteAllText(Server.MapPath(程序.安装位置 + 文件夹.Substring(1) + 文件名称 + ".aspx.cs"), CS代码, Encoding.UTF8);
            }

            加载代码 = "window.open('../DH_YeMianGuanLi.aspx','ZuoDaoHang');location.href='XiuGaiWenJian_.aspx?ti=" + (是否WAP网页 ? "wap" : "3g") + "_" + Server.UrlEncode(文件夹 + 文件名称 + ".aspx'");
        }
        else
        {
            String 文件夹位置;
            if (文件夹.StartsWith("/club/", StringComparison.OrdinalIgnoreCase))
                文件夹位置 = 程序.安装位置 + "Template/Club/" + 程序.设置["默认社区模板"] + "/WapPage" + 文件夹.Substring(5);
            else
                文件夹位置 = 程序.安装位置 + "Template/Content/" + 程序.设置["默认模板"] + "/WapPage" + 文件夹;
            FileInfo FI = new FileInfo(Server.MapPath(文件夹位置 + 文件 + ".txt"));
            StreamReader 读取 = FI.OpenText();
            String 第一行内容 = 读取.ReadLine();
            编译类型 = 读取.ReadLine();
            读取.Close();
            bool 是否3G = 第一行内容.StartsWith("3G_");
            String 文件名称 = 是否3G ? 第一行内容.Substring(3) : 第一行内容.Substring(4);

            YeMianMingChen.Text = 文件名称;
            WenJianMingChen.Text = 文件;
        }
    }
}
