EditMessage.aspx.cs
上传用户:tree100901
上传日期:2007-06-03
资源大小:2295k
文件大小:11k
源码类别:

OA系统

开发平台:

C#

  1. using System;
  2. using System.Collections;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Data.SqlClient;
  6. using System.Drawing;
  7. using System.Web;
  8. using System.IO;
  9. using System.Web.SessionState;
  10. using System.Web.UI;
  11. using System.Web.UI.WebControls;
  12. using System.Web.UI.HtmlControls;
  13. using System.Text.RegularExpressions;
  14. namespace OA
  15. {
  16. /// <summary>
  17. /// ViewMessageState 的摘要说明。
  18. /// </summary>
  19. public class ViewMessageState : System.Web.UI.Page
  20. {
  21. protected System.Web.UI.WebControls.RadioButtonList RadioButtonList1;
  22. protected System.Web.UI.WebControls.TextBox Accepter;
  23. protected System.Web.UI.HtmlControls.HtmlInputButton Send;
  24. protected System.Web.UI.WebControls.Label OldAttachment;
  25. protected System.Web.UI.HtmlControls.HtmlInputFile Attachment;
  26. protected System.Data.SqlClient.SqlConnection MyConnection;
  27. protected FreeTextBoxControls.FreeTextBox Contents;
  28. protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1;
  29. protected System.Data.SqlClient.SqlCommand MyCommand;
  30. private void Page_Load(object sender, System.EventArgs e)
  31. {
  32. MyConnection=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
  33. if(!IsPostBack)
  34. {
  35. if(Request.Params["MessageID"]!=null)
  36. {
  37. int  MID = Int32.Parse(Request.Params["MessageID"]);
  38. string PID = "";
  39. string AID = "";
  40. SqlCommand MyCommand = new SqlCommand("MessageContents",MyConnection);
  41. MyCommand.CommandType = CommandType.StoredProcedure;
  42. MyCommand.Parameters.Add(new SqlParameter("@MessageID", SqlDbType.Int, 4));
  43. MyCommand.Parameters["@MessageID"].Value = Int32.Parse(Request.Params["MessageID"]);
  44. MyConnection.Open();
  45. SqlDataReader myReader =  MyCommand.ExecuteReader();
  46. while(myReader.Read())
  47. Contents.Text = myReader["Contents"].ToString();
  48. PID = myReader["PersonID"].ToString();
  49. AID = myReader["AccepterID"].ToString().Trim().Replace("(","").Replace(")","");
  50. if(myReader["Attachment"].ToString().Trim()!="")
  51. {
  52. RadioButtonList1.Items.Add(new ListItem("使用原有附件"));
  53. RadioButtonList1.Items.Add(new ListItem("添加新附件"));
  54. OldAttachment.Text= myReader["Attachment"].ToString();
  55. RadioButtonList1.SelectedIndex=0;
  56. }
  57. else
  58. {
  59. RadioButtonList1.Items.Add(new ListItem("添加新附件"));
  60. OldAttachment.Visible=false;
  61. }
  62. }
  63. myReader.Close();
  64. string [] str = AID.Split(new char[] {','});
  65. string AccepterName="";
  66. for(int i=0; i<str.Length; i++)
  67. {
  68. SqlCommand MyCommand0 = new SqlCommand("PersonName",MyConnection);
  69. MyCommand0.CommandType = CommandType.StoredProcedure;
  70. MyCommand0.Parameters.Add(new SqlParameter("@PersonID", SqlDbType.Int, 4));
  71. MyCommand0.Parameters["@PersonID"].Value = str[i];
  72. if(MyConnection.State.ToString()=="Closed")
  73. MyConnection.Open(); 
  74. SqlDataReader myReader0 =  MyCommand0.ExecuteReader();
  75. while(myReader0.Read())
  76. AccepterName += ","+myReader0["Name"].ToString();
  77. myReader0.Close();
  78. MyConnection.Close(); 
  79. }
  80. Accepter.Text = AccepterName.Substring(1);
  81. }
  82. }
  83. // 在此处放置用户代码以初始化页面
  84. }
  85. #region Web 窗体设计器生成的代码
  86. override protected void OnInit(EventArgs e)
  87. {
  88. //
  89. // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
  90. //
  91. InitializeComponent();
  92. base.OnInit(e);
  93. }
  94. /// <summary>
  95. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  96. /// 此方法的内容。
  97. /// </summary>
  98. private void InitializeComponent()
  99. {    
  100. this.Send.ServerClick += new System.EventHandler(this.Send_ServerClick);
  101. this.Load += new System.EventHandler(this.Page_Load);
  102. }
  103. #endregion
  104. private void Send_ServerClick(object sender, System.EventArgs e)
  105. {
  106. string filename = "";
  107. string filenamen = "";
  108. MyConnection=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
  109. SqlCommand MyCommand0 = new SqlCommand("PersonID",MyConnection);
  110. MyCommand0.CommandType = CommandType.StoredProcedure;
  111. MyCommand0.Parameters.Add(new SqlParameter("@Name", SqlDbType.NVarChar, 50));
  112. MyCommand0.Parameters["@Name"].Value = User.Identity.Name;
  113. MyConnection.Open();
  114. SqlDataReader myReader =  MyCommand0.ExecuteReader(CommandBehavior.CloseConnection);
  115. string PID="";
  116. try
  117. {
  118. while(myReader.Read()) 
  119. {
  120. PID = myReader.GetInt32(0).ToString();
  121. }
  122. myReader.Close();
  123. }
  124. finally 
  125. {
  126. }
  127. string[] myData = Accepter.Text.Trim().Replace(",,",",").Split(new Char [] {','});
  128. string AccepterSec = "";
  129. string Sumac ="";
  130. string [] str = RemoveDup(myData);
  131. for(int i = 0; i<str.Length; i++)
  132. {
  133. SqlCommand MyCommand1 = new SqlCommand("PersonID",MyConnection);
  134. MyCommand1.CommandType = CommandType.StoredProcedure;
  135. MyCommand1.Parameters.Add(new SqlParameter("@Name", SqlDbType.NVarChar, 50));
  136. MyCommand1.Parameters["@Name"].Value = str[i];
  137. if(MyConnection.State.ToString()=="Closed")
  138. MyConnection.Open();  
  139. SqlDataReader myReader1 =  MyCommand1.ExecuteReader();
  140. while(myReader1.Read()) 
  141. {
  142. AccepterSec = myReader1.GetInt32(0).ToString();
  143. }
  144. myReader1.Close();
  145. if(AccepterSec.Trim()!="")
  146. {
  147. Sumac += ","+AccepterSec;
  148. }
  149. }
  150. if(Contents.Text.Trim()=="")
  151. RegisterStartupScript("alert","<script>alert('内容不能为空')</script>");
  152. else
  153. {
  154. if(Sumac!="")
  155. {
  156. MyCommand=new SqlCommand("InsertMessage",MyConnection);
  157. MyCommand.CommandType = CommandType.StoredProcedure;
  158. if (Attachment.PostedFile != null)
  159. filename=Path.GetFileName(Attachment.PostedFile.FileName).Trim();
  160. int j = 0;
  161. filenamen=filename;
  162. if(File.Exists(Server.MapPath("MessageAttachment\"+filenamen)))
  163. {
  164. filenamen = filename.Replace(".","("+j.ToString()+").");
  165. if(File.Exists(Server.MapPath("MessageAttachment\"+filenamen)))
  166. {
  167. int lastLocation = filename.LastIndexOf( "." );
  168. string[] dirs = Directory.GetFiles(Server.MapPath("MessageAttachment\"), ""+filename.Substring(0,lastLocation)+"(*");
  169. for(int l = 0; l<dirs.Length+1; l++)
  170. {
  171. string strf = filenamen.Replace("("+j.ToString()+").","("+l.ToString()+").");
  172. if(!File.Exists(Server.MapPath("MessageAttachment\"+strf)))
  173. filenamen = strf;
  174. }
  175. }
  176. }
  177. if(filenamen.Trim()!="")
  178. Attachment.PostedFile.SaveAs(Server.MapPath("MessageAttachment\"+filenamen));
  179. MyCommand.Parameters.Add(new SqlParameter("@Attachment", SqlDbType.NVarChar, 50));
  180. MyCommand.Parameters["@Attachment"].Value = filenamen;  
  181. MyCommand.Parameters.Add(new SqlParameter("@Contents",SqlDbType.NVarChar, 1000));
  182. MyCommand.Parameters["@Contents"].Value = Contents.Text;
  183. MyCommand.Parameters.Add(new SqlParameter("@PersonID",SqlDbType.Int, 4));
  184. MyCommand.Parameters["@PersonID"].Value = PID; 
  185. MyCommand.Parameters.Add(new SqlParameter("@AccepterID", SqlDbType.NVarChar, 120));
  186. MyCommand.Parameters["@AccepterID"].Value = "("+Sumac.Substring(1).Replace(",", "),(")+")";   
  187. MyCommand.Parameters.Add(new SqlParameter("@State",SqlDbType.Int, 4));
  188. MyCommand.Parameters["@State"].Value = "0";
  189. try
  190. {
  191. MyCommand.ExecuteNonQuery();
  192. }
  193. catch
  194. {
  195. }
  196. MyConnection.Close(); 
  197. }
  198. for(int i = 0; i<str.Length; i++)
  199. {
  200. SqlCommand MyCommand1 = new SqlCommand("PersonID",MyConnection);
  201. MyCommand1.CommandType = CommandType.StoredProcedure;
  202. MyCommand1.Parameters.Add(new SqlParameter("@Name", SqlDbType.NVarChar, 50));
  203. MyCommand1.Parameters["@Name"].Value = str[i];
  204. if(MyConnection.State.ToString()=="Closed")
  205. MyConnection.Open();  
  206. SqlDataReader myReader1 =  MyCommand1.ExecuteReader();
  207. while(myReader1.Read()) 
  208. {
  209. AccepterSec = myReader1.GetInt32(0).ToString();
  210. }
  211. myReader1.Close();
  212. if(AccepterSec.Trim()!="")
  213. {
  214. MyCommand=new SqlCommand("InsertMessage",MyConnection);
  215. MyCommand.CommandType = CommandType.StoredProcedure;
  216. int j = 0;
  217. if(File.Exists(Server.MapPath("MessageAttachment\"+filenamen)))
  218. {
  219. filenamen = filename.Replace(".","("+j.ToString()+").");
  220. if(File.Exists(Server.MapPath("MessageAttachment\"+filenamen)))
  221. {
  222. int lastLocation = filename.LastIndexOf( "." );
  223. string[] dirs = Directory.GetFiles(Server.MapPath("MessageAttachment\"), ""+filename.Substring(0,lastLocation)+"(*");
  224. for(int l = 0; l<dirs.Length+1; l++)
  225. {
  226. string strf = filenamen.Replace("("+j.ToString()+").","("+l.ToString()+").");
  227. if(!File.Exists(Server.MapPath("MessageAttachment\"+strf)))
  228. filenamen = strf;
  229. }
  230. }
  231. }
  232. if(filenamen.Trim()!="")
  233. Attachment.PostedFile.SaveAs(Server.MapPath("MessageAttachment\"+filenamen));
  234. MyCommand.Parameters.Add(new SqlParameter("@Attachment", SqlDbType.NVarChar, 50));
  235. MyCommand.Parameters["@Attachment"].Value = filenamen; 
  236. MyCommand.Parameters.Add(new SqlParameter("@Contents",SqlDbType.NVarChar, 2000));
  237. MyCommand.Parameters["@Contents"].Value = Contents.Text;
  238. MyCommand.Parameters.Add(new SqlParameter("@PersonID",SqlDbType.Int, 4));
  239. MyCommand.Parameters["@PersonID"].Value = PID; 
  240. MyCommand.Parameters.Add(new SqlParameter("@AccepterID", SqlDbType.NVarChar, 120));
  241. MyCommand.Parameters["@AccepterID"].Value = AccepterSec;   
  242. MyCommand.Parameters.Add(new SqlParameter("@State",SqlDbType.Int, 4));
  243. MyCommand.Parameters["@State"].Value = "0";
  244. try
  245. {
  246. MyCommand.ExecuteNonQuery();
  247. }
  248. catch
  249. {
  250. RegisterStartupScript("alert","<script>alert('短信息未能正确发送!')</script>");
  251. }
  252. }
  253. }
  254. Accepter.Text="";
  255. Contents.Text="";
  256. MyConnection.Close(); 
  257. Response.Write("<script>opener.location.href=opener.location.href;opener=null;window.close();</"+"script>");
  258. }
  259. }
  260. public static string[] RemoveDup(string[] myData)
  261. {
  262. if (myData.Length > 0)
  263. {
  264. Array.Sort(myData);
  265. int size = 1;
  266. for (int i=1; i<myData.Length; i++)
  267. if (myData[i] != myData[i-1])
  268. size++;
  269. string[] myTempData = new string[size];
  270. int j=0;
  271. myTempData[j++] = myData[0];
  272. for (int i=1; i<myData.Length; i++)
  273. if (myData[i] != myData[i-1])
  274. myTempData[j++] = myData[i];
  275. return myTempData;
  276. }
  277. return myData; 
  278. }
  279. public String CleanInput(string strIn)
  280. {
  281. return Regex.Replace(strIn, @"[^w,]", ""); 
  282. }
  283. }
  284. }