/pigeoncms/App_Code/EmailNewsletterManager.cs

http://pigeoncms.googlecode.com/ · C# · 221 lines · 193 code · 20 blank · 8 comment · 15 complexity · 2a42b438187630a934da2068913a363b MD5 · raw file

  1. using System;
  2. using System.Data;
  3. using System.Configuration;
  4. using System.Web;
  5. using System.Web.Security;
  6. using System.Web.UI;
  7. using System.Web.UI.WebControls;
  8. using System.Web.UI.WebControls.WebParts;
  9. using System.Web.UI.HtmlControls;
  10. using System.ComponentModel;
  11. using System.Data.SqlClient;
  12. using System.Collections.Generic;
  13. namespace PigeonCms
  14. {
  15. /// <summary>
  16. /// Data Access Layer for EmailNewsletter obj (in table emailInserite)
  17. /// </summary>
  18. [DataObject()]
  19. public static class EmailNewsletterManager
  20. {
  21. [DataObjectMethod(DataObjectMethodType.Select, true)]
  22. public static List<EmailNewsletter> GetListByFilter(EmailNewsletterFilter filter, string sort)
  23. {
  24. SqlConnection myConn = new SqlConnection();
  25. SqlDataReader myRd = null;
  26. SqlCommand myCmd = new SqlCommand();
  27. string sSql;
  28. List<EmailNewsletter> result = new List<EmailNewsletter>();
  29. try
  30. {
  31. myConn.ConnectionString = Database.ConnString;
  32. myConn.Open();
  33. myCmd.Connection = myConn;
  34. sSql = "SELECT EmailId FROM #__EmailInserite t WHERE t.EmailId > 0 ";
  35. if (filter.EmailId > 0 || filter.EmailId == -1)
  36. {
  37. sSql += " AND t.EmailId = @EmailId ";
  38. myCmd.Parameters.AddWithValue("EmailId", filter.EmailId);
  39. }
  40. if (!string.IsNullOrEmpty(filter.Email))
  41. {
  42. sSql += " AND t.Email = @Email ";
  43. myCmd.Parameters.AddWithValue("Email", filter.Email);
  44. }
  45. if (!string.IsNullOrEmpty(filter.Ip))
  46. {
  47. sSql += " AND t.Ip = @Ip ";
  48. myCmd.Parameters.AddWithValue("Ip", filter.Ip);
  49. }
  50. if (!string.IsNullOrEmpty(sort))
  51. {
  52. sSql += " ORDER BY " + sort;
  53. }
  54. else
  55. {
  56. sSql += " ORDER BY EmailId ";
  57. }
  58. myCmd.CommandText = Database.ParseSql(sSql);
  59. myRd = myCmd.ExecuteReader();
  60. while (myRd.Read())
  61. {
  62. EmailNewsletter item = GetById((int)myRd["EmailId"]);
  63. result.Add(item);
  64. }
  65. myRd.Close();
  66. }
  67. finally
  68. {
  69. myConn.Dispose();
  70. }
  71. return result;
  72. }
  73. [DataObjectMethod(DataObjectMethodType.Select, false)]
  74. public static EmailNewsletter GetById(int emailId)
  75. {
  76. SqlConnection myConn = new SqlConnection();
  77. SqlDataReader myRd = null;
  78. SqlCommand myCmd = new SqlCommand();
  79. string sSql;
  80. EmailNewsletter result = new EmailNewsletter();
  81. try
  82. {
  83. myConn.ConnectionString = Database.ConnString;
  84. myConn.Open();
  85. myCmd.Connection = myConn;
  86. sSql = "SELECT EmailId, InsDate, Email, Ip "
  87. + " FROM #__emailInserite m "
  88. + " WHERE EmailId = @EmailId ";
  89. myCmd.CommandText = Database.ParseSql(sSql);
  90. myCmd.Parameters.AddWithValue("EmailId", emailId);
  91. myRd = myCmd.ExecuteReader();
  92. if (myRd.Read())
  93. {
  94. if (!Convert.IsDBNull(myRd["EmailId"]))
  95. result.EmailId = (int)myRd["EmailId"];
  96. if (!Convert.IsDBNull(myRd["InsDate"]))
  97. result.InsDate = Convert.ToDateTime(myRd["InsDate"]);
  98. if (!Convert.IsDBNull(myRd["Email"]))
  99. result.Email = (string)myRd["Email"];
  100. if (!Convert.IsDBNull(myRd["Ip"]))
  101. result.Ip = (string)myRd["Ip"];
  102. }
  103. myRd.Close();
  104. }
  105. finally
  106. {
  107. myConn.Dispose();
  108. }
  109. return result;
  110. }
  111. [DataObjectMethod(DataObjectMethodType.Delete, true)]
  112. public static int DeleteById(int emailId)
  113. {
  114. SqlConnection myConn = new SqlConnection();
  115. SqlCommand myCmd = new SqlCommand();
  116. string sSql;
  117. int res = 0;
  118. try
  119. {
  120. myConn.ConnectionString = Database.ConnString;
  121. myConn.Open();
  122. myCmd.Connection = myConn;
  123. sSql = "DELETE FROM #__emailInserite WHERE emailId = @emailId ";
  124. myCmd.CommandText = Database.ParseSql(sSql);
  125. myCmd.Parameters.AddWithValue("emailId", emailId);
  126. res = myCmd.ExecuteNonQuery();
  127. }
  128. finally
  129. {
  130. myConn.Dispose();
  131. }
  132. return res;
  133. }
  134. /// <summary>
  135. /// Insert a new record in table emailInserite
  136. /// </summary>
  137. /// <param name="newObj">The info about new EmailNewsletter, newObj.EmaiId and newObj.InsDate will be calculated in automatic</param>
  138. /// <returns>The new object</returns>
  139. [DataObjectMethod(DataObjectMethodType.Insert, false)]
  140. public static EmailNewsletter Insert(EmailNewsletter newObj)
  141. {
  142. SqlConnection myConn = new SqlConnection();
  143. SqlCommand myCmd = new SqlCommand();
  144. string sSql;
  145. EmailNewsletter result = new EmailNewsletter();
  146. try
  147. {
  148. myConn.ConnectionString = Database.ConnString;
  149. myConn.Open();
  150. myCmd.Connection = myConn;
  151. result.EmailId = getNextId();
  152. result.InsDate = newObj.InsDate;
  153. result.Email = newObj.Email;
  154. result.Ip = newObj.Ip;
  155. sSql = "INSERT INTO #__emailInserite(EmailId, InsDate, Email, Ip) "
  156. + "VALUES(@EmailId, getdate(), @Email, @Ip) ";
  157. myCmd.CommandText = Database.ParseSql(sSql);
  158. myCmd.Parameters.AddWithValue("EmailId", result.EmailId);
  159. myCmd.Parameters.AddWithValue("Email", result.Email);
  160. myCmd.Parameters.AddWithValue("Ip", result.Ip);
  161. myCmd.ExecuteNonQuery();
  162. }
  163. finally
  164. {
  165. myConn.Dispose();
  166. }
  167. return result;
  168. }
  169. private static int getNextId()
  170. {
  171. SqlConnection myConn = new SqlConnection();
  172. SqlDataReader myRd = null;
  173. SqlCommand myCmd = new SqlCommand();
  174. string sSql;
  175. int result = 0;
  176. try
  177. {
  178. myConn.ConnectionString = Database.ConnString;
  179. myConn.Open();
  180. myCmd.Connection = myConn;
  181. sSql = "SELECT max(EmailId) FROM #__emailInserite ";
  182. myCmd.CommandText = Database.ParseSql(sSql);
  183. myRd = myCmd.ExecuteReader();
  184. if (myRd.Read())
  185. {
  186. if (myRd[0] != DBNull.Value)
  187. {
  188. result = (int)myRd[0];
  189. }
  190. }
  191. myRd.Close();
  192. result++;
  193. }
  194. finally
  195. {
  196. myConn.Dispose();
  197. }
  198. return result;
  199. }
  200. }
  201. }