/projects/PigeonCms.Core/DAL/CulturesManager.cs

http://pigeoncms.googlecode.com/ · C# · 247 lines · 217 code · 24 blank · 6 comment · 14 complexity · 8cd7c9ae7aa74ed2391a33f11772ad08 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.Collections.Generic;
  12. using System.IO;
  13. using System.Data.Common;
  14. using PigeonCms;
  15. using System.Diagnostics;
  16. namespace PigeonCms
  17. {
  18. /// <summary>
  19. /// DAL for Culture obj (in table Cultures)
  20. /// </summary>
  21. public class CulturesManager: TableManagerWithOrdering<Culture, CulturesFilter, string>
  22. {
  23. [DebuggerStepThrough()]
  24. public CulturesManager()
  25. {
  26. this.TableName = "#__cultures";
  27. this.KeyFieldName = "CultureCode";
  28. }
  29. public override Dictionary<string, string> GetList()
  30. {
  31. Dictionary<string, string> res = new Dictionary<string, string>();
  32. CulturesFilter filter = new CulturesFilter();
  33. List<Culture> list = GetByFilter(filter, "");
  34. foreach (Culture item in list)
  35. {
  36. res.Add(item.CultureCode.ToString(), item.DisplayName);
  37. }
  38. return res;
  39. }
  40. public override List<Culture> GetByFilter(CulturesFilter filter, string sort)
  41. {
  42. DbProviderFactory myProv = Database.ProviderFactory;
  43. DbConnection myConn = myProv.CreateConnection();
  44. DbDataReader myRd = null;
  45. DbCommand myCmd = myConn.CreateCommand();
  46. string sSql;
  47. List<Culture> result = new List<Culture>();
  48. try
  49. {
  50. myConn.ConnectionString = Database.ConnString;
  51. myConn.Open();
  52. myCmd.Connection = myConn;
  53. sSql = "SELECT t.cultureCode "
  54. + " FROM [#__cultures] t "
  55. + " WHERE 1=1 ";
  56. if (!string.IsNullOrEmpty(filter.CultureCode))
  57. {
  58. sSql += " AND t.CultureCode = @CultureCode ";
  59. myCmd.Parameters.Add(Database.Parameter(myProv, "CultureCode", filter.CultureCode));
  60. }
  61. if (filter.Enabled != Utility.TristateBool.NotSet)
  62. {
  63. sSql += " AND t.Enabled = @Enabled ";
  64. myCmd.Parameters.Add(Database.Parameter(myProv, "Enabled", filter.Enabled));
  65. }
  66. if (!string.IsNullOrEmpty(sort))
  67. {
  68. sSql += " ORDER BY " + sort;
  69. }
  70. else
  71. {
  72. sSql += " ORDER BY t.Ordering ";
  73. }
  74. myCmd.CommandText = Database.ParseSql(sSql);
  75. myRd = myCmd.ExecuteReader();
  76. while (myRd.Read())
  77. {
  78. Culture item = GetByKey(myRd["CultureCode"].ToString());
  79. result.Add(item);
  80. }
  81. myRd.Close();
  82. }
  83. finally
  84. {
  85. myConn.Dispose();
  86. }
  87. return result;
  88. }
  89. public override Culture GetByKey(string cultureCode)
  90. {
  91. DbProviderFactory myProv = Database.ProviderFactory;
  92. DbConnection myConn = myProv.CreateConnection();
  93. DbDataReader myRd = null;
  94. DbCommand myCmd = myConn.CreateCommand();
  95. string sSql;
  96. Culture result = new Culture();
  97. try
  98. {
  99. myConn.ConnectionString = Database.ConnString;
  100. myConn.Open();
  101. myCmd.Connection = myConn;
  102. sSql = "SELECT CultureCode, DisplayName, Enabled, Ordering "
  103. + " FROM [#__cultures] "
  104. + " WHERE CultureCode = @CultureCode ";
  105. myCmd.CommandText = Database.ParseSql(sSql);
  106. myCmd.Parameters.Add(Database.Parameter(myProv, "CultureCode", cultureCode));
  107. myRd = myCmd.ExecuteReader();
  108. if (myRd.Read())
  109. {
  110. if (!Convert.IsDBNull(myRd["CultureCode"]))
  111. result.CultureCode = myRd["CultureCode"].ToString();
  112. if (!Convert.IsDBNull(myRd["DisplayName"]))
  113. result.DisplayName = myRd["DisplayName"].ToString();
  114. if (!Convert.IsDBNull(myRd["Enabled"]))
  115. result.Enabled = (bool)myRd["Enabled"];
  116. if (!Convert.IsDBNull(myRd["Ordering"]))
  117. result.Ordering = (int)myRd["Ordering"];
  118. }
  119. myRd.Close();
  120. }
  121. finally
  122. {
  123. myConn.Dispose();
  124. }
  125. return result;
  126. }
  127. public override int Update(Culture theObj)
  128. {
  129. DbProviderFactory myProv = Database.ProviderFactory;
  130. DbConnection myConn = myProv.CreateConnection();
  131. DbCommand myCmd = myConn.CreateCommand();
  132. string sSql;
  133. int result = 0;
  134. try
  135. {
  136. myConn.ConnectionString = Database.ConnString;
  137. myConn.Open();
  138. myCmd.Connection = myConn;
  139. if (theObj.Ordering == 0)
  140. {
  141. theObj.Ordering = this.GetNextOrdering();
  142. }
  143. sSql = "UPDATE [#__cultures] "
  144. + " SET DisplayName=@DisplayName, Enabled=@Enabled, Ordering=@Ordering "
  145. + " WHERE CultureCode = @CultureCode";
  146. myCmd.CommandText = Database.ParseSql(sSql);
  147. myCmd.Parameters.Add(Database.Parameter(myProv, "CultureCode", theObj.CultureCode));
  148. myCmd.Parameters.Add(Database.Parameter(myProv, "DisplayName", theObj.DisplayName));
  149. myCmd.Parameters.Add(Database.Parameter(myProv, "Enabled", theObj.Enabled));
  150. myCmd.Parameters.Add(Database.Parameter(myProv, "Ordering", theObj.Ordering));
  151. result = myCmd.ExecuteNonQuery();
  152. }
  153. catch (Exception e)
  154. {
  155. throw e;
  156. }
  157. finally
  158. {
  159. myConn.Dispose();
  160. }
  161. return result;
  162. }
  163. public override Culture Insert(Culture newObj)
  164. {
  165. DbProviderFactory myProv = Database.ProviderFactory;
  166. DbConnection myConn = myProv.CreateConnection();
  167. DbCommand myCmd = myConn.CreateCommand();
  168. string sSql;
  169. Culture result = new Culture();
  170. try
  171. {
  172. myConn.ConnectionString = Database.ConnString;
  173. myConn.Open();
  174. myCmd.Connection = myConn;
  175. result = newObj;
  176. result.Ordering = base.GetNextOrdering();
  177. sSql = "INSERT INTO [#__cultures](CultureCode, DisplayName, Enabled, Ordering) "
  178. + " VALUES(@CultureCode, @DisplayName, @Enabled, @Ordering) ";
  179. myCmd.CommandText = Database.ParseSql(sSql);
  180. myCmd.Parameters.Add(Database.Parameter(myProv, "CultureCode", result.CultureCode));
  181. myCmd.Parameters.Add(Database.Parameter(myProv, "DisplayName", result.DisplayName));
  182. myCmd.Parameters.Add(Database.Parameter(myProv, "Enabled", result.Enabled));
  183. myCmd.Parameters.Add(Database.Parameter(myProv, "Ordering", result.Ordering));
  184. myCmd.ExecuteNonQuery();
  185. }
  186. catch (Exception e)
  187. {
  188. throw e;
  189. }
  190. finally
  191. {
  192. myConn.Dispose();
  193. }
  194. return result;
  195. }
  196. public void RefreshCultureList()
  197. {
  198. try
  199. {
  200. Dictionary<String, String> cultureList = new Dictionary<string, string>();
  201. CulturesFilter filter = new CulturesFilter();
  202. filter.Enabled = Utility.TristateBool.True;
  203. List<PigeonCms.Culture> list = new CulturesManager().GetByFilter(filter, "");
  204. foreach (PigeonCms.Culture item in list)
  205. {
  206. cultureList.Add(item.CultureCode, item.DisplayName);
  207. }
  208. if (list.Count == 0)
  209. {
  210. cultureList.Add("it-IT", "Italiano");
  211. //cultureList.Add("en-US", "English");
  212. //cultureList.Add("de-DE", "Deutsch");
  213. //cultureList.Add("es-ES", "Espa?ol");
  214. }
  215. HttpContext.Current.Application["CultureList"] = cultureList;
  216. }
  217. catch (Exception ex)
  218. {
  219. throw ex;
  220. }
  221. }
  222. }
  223. }