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

public partial class wClub_Reply_Save:System.Web.UI.Page
{
	//------------------------------
	// 此文件代码由工具自动生成
	// 2010-6-13 18:06:13
	// UUNSOFT.COM 版权所有
	//------------------------------
	private 访问 访问;
	private StringBuilder 返回值;
	protected void Page_Load(object sender,EventArgs e)
	{
		访问 = new 访问(this.Context);
		访问.是否前台=true;
		访问.是否WML=true;
		访问.开始处理("回复贴子","网站页面","回复贴子",new 访问.回调委托(ZhiXing));
		访问.关闭连接();
	}
	private void ZhiXing()
	{
		返回值=new StringBuilder();

	ID=Convert.ToInt32(Request.QueryString["ID"]);
	版块ID=Convert.ToInt32(Request.QueryString["BID"]);
	论坛版块=常用.获取版块(版块ID);
	应用版块设置();
	回复贴子提交();
		返回值.Append(@"<?xml version=""1.0"" encoding=""utf-8""?>
<!DOCTYPE wml PUBLIC ""-//WAPFORUM//DTD WML 1.1//EN"" ""http://www.wapforum.org/DTD/wml_1.1.xml"">
<wml>
<head>
<meta http-equiv=""Cache-Control"" content=""max-age=0"" />
</head>

<card title=""回复贴子"">
<p>
");
		返回值.Append(new 消息(this.Context,访问.连接).弹出消息(访问.用户));
		返回值.Append(@"



回复贴子成功<br/>
<a href=""Reply.aspx?BID=");

		返回值.Append(版块ID);
		返回值.Append(@"&amp;ID=");

		返回值.Append(ID);
		返回值.Append(@"&amp;");
		返回值.Append(Server.HtmlEncode(程序.设置["标识名称"].ToString()));
		返回值.Append(@"=");
		返回值.Append(访问.用户["标识"].ToString());
		返回值.Append(@""">返回回贴列表</a><br/>
<a href=""Topic.aspx?BID=");

		返回值.Append(版块ID);
		返回值.Append(@"&amp;ID=");

		返回值.Append(ID);
		返回值.Append(@"&amp;");
		返回值.Append(Server.HtmlEncode(程序.设置["标识名称"].ToString()));
		返回值.Append(@"=");
		返回值.Append(访问.用户["标识"].ToString());
		返回值.Append(@""">返回查看贴子</a><br/>
<a href=""Board.aspx?ID=");

		返回值.Append(版块ID);
		返回值.Append(@"&amp;");
		返回值.Append(Server.HtmlEncode(程序.设置["标识名称"].ToString()));
		返回值.Append(@"=");
		返回值.Append(访问.用户["标识"].ToString());
		返回值.Append(@""">返回");

		返回值.Append(Server.HtmlEncode(论坛版块["版块名称"].ToString()));
		返回值.Append(@"</a><br/>
<a href=""");
		返回值.Append(Server.HtmlEncode(常用.处理地址(程序.安装位置+"club/page.aspx?ID=1",访问.用户["标识"].ToString())));
		返回值.Append(@""">返回社区首页</a><br/>
<a href=""");
		返回值.Append(Server.HtmlEncode(常用.处理地址(程序.安装位置+"page.aspx?ID=1",访问.用户["标识"].ToString())));
		返回值.Append(@""">返回首页</a><br/>
");
		返回值.Append(DateTime.Now.ToString(@"MM月dd日 HH:mm"));
		返回值.Append(@"




</p>
</card>
</wml>");
		Response.Write(返回值);
		Response.Write("<!-- Powered by www.uunsoft.com -->");
	}

	private int ID;
	private int 版块ID;
	private DataRow 论坛版块;
	private DataSet 论坛版主;
	private Hashtable 贴子;
	private void 获取论坛版主()
	{
		论坛版主=new DataSet();
		SqlCommand 语句=new SqlCommand("SELECT * FROM ["+程序.数据表前缀+"社区_论坛_版主] WHERE [所属版块]="+ID+" ORDER BY [创建时间]",访问.连接);
		SqlDataAdapter 填充=new SqlDataAdapter(语句);
		填充.Fill(论坛版主,"论坛版主");
	}
	private bool 是否版主()
	{
		if(论坛版主==null)
			获取论坛版主();
		bool 返回值=false;
		for(int i=0;i<论坛版主.Tables[0].Rows.Count;i++)
			if(Convert.ToInt32(论坛版主.Tables[0].Rows[i]["版主ID"])==Convert.ToInt32(访问.用户["ID"]))
				返回值=true;
		return 返回值;
	}
	private void 应用版块设置()
	{
		if(!Convert.ToBoolean(论坛版块["版块状态"]))
			throw new Exception(论坛版块["禁止访问提示"].ToString());
		switch(Convert.ToInt32(论坛版块["回贴权限"]))
		{
			case 0:
				break;
			case 1:
				访问.验证会员();
				break;
			default:
				if(!是否版主())
					throw new Exception("此版块只允许版主发贴");
				break;
		}
	}
	private void 回复贴子提交()
	{
		String 回复内容=Request.Form["ReplyText"];
		if(回复内容.Length<1||回复内容.Length>1000)
			throw new Exception("回复内容的长度只能在1-1000之间");

		int ZGID=常用.SQL_最高ID(访问.连接,程序.数据表前缀+"社区_论坛_回贴");
		int 楼数=0;
		SqlCommand 语句=new SqlCommand("SELECT [楼数] FROM ["+程序.数据表前缀+"社区_论坛_回贴] WHERE [所属版块]="+版块ID,访问.连接);
		SqlDataReader 读取=语句.ExecuteReader();
		if(读取.Read())
			楼数=Convert.ToInt32(读取["楼数"])+1;
		else
			楼数=1;
		读取.Close();

		贴子=常用.SQL_获取(new SqlCommand("SELECT [标题] FROM ["+程序.数据表前缀+"社区_论坛_贴子] WHERE [所属版块]="+版块ID+" AND [ID]="+ID+" AND [是否删除]=0",访问.连接));
		if(贴子==null)
			throw new Exception("贴子不存在");

		语句=new SqlCommand("INSERT INTO ["+程序.数据表前缀+"社区_论坛_回贴]([ID],[所属版块],[楼数],[回贴用户ID],[回贴用户昵称],[回贴用户IP],[回贴用户地区],[贴子ID],[贴子标题],[回贴内容],[支持],[反对],[发表时间])"+
			"VALUES(@ID,@所属版块,@楼数,@回贴用户ID,@回贴用户昵称,@回贴用户IP,@回贴用户地区,@贴子ID,@贴子标题,@回贴内容,@支持,@反对,@发表时间)",访问.连接);
		语句.Parameters.Add("@ID",SqlDbType.Int).Value=ZGID;
		语句.Parameters.Add("@所属版块",SqlDbType.Int).Value=版块ID;
		语句.Parameters.Add("@楼数",SqlDbType.Int).Value=楼数;
		语句.Parameters.Add("@回贴用户ID",SqlDbType.Int).Value=Convert.ToInt32(访问.用户["ID"]);
		语句.Parameters.Add("@回贴用户昵称",SqlDbType.NVarChar).Value=访问.用户["昵称"].ToString();
		语句.Parameters.Add("@回贴用户IP",SqlDbType.NVarChar).Value=Request.UserHostAddress.ToString();
		语句.Parameters.Add("@回贴用户地区",SqlDbType.NVarChar).Value=访问.用户["最后登录地区"].ToString();
		语句.Parameters.Add("@贴子ID",SqlDbType.Int).Value=ID;
		语句.Parameters.Add("@贴子标题",SqlDbType.NVarChar).Value=贴子["标题"].ToString();
		语句.Parameters.Add("@回贴内容",SqlDbType.NVarChar).Value=回复内容;
		语句.Parameters.Add("@支持",SqlDbType.Int).Value=0;
		语句.Parameters.Add("@反对",SqlDbType.Int).Value=0;
		语句.Parameters.Add("@发表时间",SqlDbType.DateTime).Value=DateTime.Now;
		语句.ExecuteNonQuery();

		int 回贴数;
		语句=new SqlCommand("SELECT COUNT(ID) FROM ["+程序.数据表前缀+"社区_论坛_回贴] WHERE [贴子ID]="+ID,访问.连接);
		回贴数=Convert.ToInt32(语句.ExecuteScalar());

		语句=new SqlCommand("UPDATE ["+程序.数据表前缀+"社区_论坛_贴子] SET [回贴数]="+回贴数+" WHERE [所属版块]="+版块ID+" AND [ID]="+ID+" AND [是否删除]=0",访问.连接);
		语句.ExecuteNonQuery();
	}
}