using System;
using System.Data;
using System.Data.SqlClient;
using System.Web;
using System.IO;
using System.Collections;
using System.Text.RegularExpressions;

namespace UUN
{
    /// <summary>
    /// 编译L_Message_Add_Save.aspx文件
    /// </summary>
    public class 编译扩展_L_Message_Add_Save : 编译扩展接口
    {
        private SqlConnection 连接;
        private HttpContext HC;
        private 编译器 编译器;

        public 编译扩展_L_Message_Add_Save(SqlConnection 连接, HttpContext HC, 编译器 编译器)
        {
            this.连接 = 连接;
            this.HC = HC;
            this.编译器 = 编译器;
        }


        public string 开始执行代码()
        {
            编译器.方法库 += @"	private new int ID;
	private DataRow 留言本;
	private void 增加留言()
    {
		String 标题=Request.Form[""BiaoTi""];
		String 发表人=Request.Form[""FaBiaoRen""];
		String 留言表情=Request.Form[""LiuYanBiaoQing""];
		String 留言内容=Request.Form[""LiuYanNeiRong""];
		String 留言密码=Request.Form[""LiuYanMiMa""];

		if(标题.Length<1||标题.Length>50)
			throw new Exception(""标题的长度只能在1-50个字符"");
		if(发表人.Length<1||发表人.Length>16)
			throw new Exception(""发表人的长度只能在1-16个字符"");
		if(留言内容.Length<1||留言内容.Length>1000)
			throw new Exception(""留言内容的长度只能在1-1000个字符"");
		if(留言密码.Length>16)
			throw new Exception(""留言密码的长度不能大于16个字符"");

		int ZGID=常用.SQL_最高ID(访问.连接,程序.数据表前缀+""其它_留言_留言"");
		SqlCommand 语句=new SqlCommand(""INSERT INTO [""+程序.数据表前缀+""其它_留言_留言]""+
			""([ID],[留言本ID],[留言本名称],[标题],[发表人],[留言表情],[留言内容],[留言时间],[是否保密],[是否已回复],[回复内容],[回复时间],[留言密码])""+
			""VALUES(@ID,@留言本ID,@留言本名称,@标题,@发表人,@留言表情,@留言内容,@留言时间,@是否保密,@是否已回复,@回复内容,@回复时间,@留言密码)"",访问.连接);
		语句.Parameters.Add(""@ID"",SqlDbType.Int).Value=ZGID;
		语句.Parameters.Add(""@留言本ID"",SqlDbType.Int).Value=ID;
		语句.Parameters.Add(""@留言本名称"",SqlDbType.NVarChar).Value=留言本[""留言本名称""].ToString();
		语句.Parameters.Add(""@标题"",SqlDbType.NVarChar).Value=标题;
		语句.Parameters.Add(""@发表人"",SqlDbType.NVarChar).Value=发表人;
		语句.Parameters.Add(""@留言表情"",SqlDbType.NVarChar).Value=留言表情;
		语句.Parameters.Add(""@留言内容"",SqlDbType.NVarChar).Value=留言内容;
		语句.Parameters.Add(""@留言时间"",SqlDbType.DateTime).Value=DateTime.Now;
		语句.Parameters.Add(""@是否保密"",SqlDbType.Bit).Value=留言密码!="""";
		语句.Parameters.Add(""@是否已回复"",SqlDbType.Bit).Value=false;
		语句.Parameters.Add(""@回复内容"",SqlDbType.NVarChar).Value="""";
		语句.Parameters.Add(""@回复时间"",SqlDbType.DateTime).Value=DateTime.Now;
		语句.Parameters.Add(""@留言密码"",SqlDbType.NVarChar).Value=留言密码;
		语句.ExecuteNonQuery();
    }
";
            return @"
	ID=Convert.ToInt32(Request.QueryString[""ID""]);
	留言本=常用.获取留言本(ID);
	if(留言本==null)
		throw new Exception(""留言本不存在"");
	增加留言();
";
        }

        public string 编译公共标签(string 代码)
        {
            switch (代码)
            {
                case "留言本ID":
                    return @"
		返回值.Append(ID.ToString());
";
                case "留言本名称":
                    return @"
		返回值.Append(Server.HtmlEncode(留言本[""留言本名称""].ToString()));
";
                case "留言本地址":
                    return @"
		返回值.Append(Server.HtmlEncode(常用.处理地址(""" + (编译器.是否WML网页 ? "" : "3G_") + @"Guestbook.aspx?ID=""+ID,访问.用户[""标识""].ToString())));
";
                default:
                    return "";
            }
        }

        public string 编译模板方法(string 方法名称, string[] 属性数组)
        {
            return "";
        }

        public string 结束执行代码()
        {
            return "";
        }
    }
}