PageRenderTime 51ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 1ms

/IB.Common/Base/V_Base.cs

http://i-business.googlecode.com/
C# | 352 lines | 277 code | 54 blank | 21 comment | 31 complexity | 322f854ff5e8dec4375afada57c79846 MD5 | raw file
  1. using System.Data;
  2. using System.Configuration;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Web;
  6. using System.Web.Security;
  7. using System.Web.UI;
  8. using System.Web.UI.HtmlControls;
  9. using System.Web.UI.WebControls;
  10. using System.Web.UI.WebControls.WebParts;
  11. using System.Xml.Linq;
  12. using DotNetNuke.Common;
  13. using System.Collections.Generic;
  14. using DotNetNuke.Common.Utilities;
  15. using DotNetNuke.Services.FileSystem;
  16. using DotNetNuke.Services.Localization;
  17. using DotNetNuke.Security.Permissions;
  18. using IB.Common.Entities;
  19. using System;
  20. namespace IB.Common.Base
  21. {
  22. /// <summary>
  23. /// L?u c? ?nh ??i di?n album vŕ ?nh ??i di?n album vŕo Album
  24. /// danh m?c c?a c? News vŕ Products vŕo Category
  25. /// ?nh c?a c? tin t?c
  26. /// </summary>
  27. public enum LocationImage
  28. {
  29. News, Album, Slide, Product, Category
  30. }
  31. public class V_Base : DotNetNuke.Entities.Modules.PortalModuleBase
  32. {
  33. private static VCDataDataContext data = null;
  34. public static VCDataDataContext Data
  35. {
  36. get
  37. {
  38. if (Null.IsNull(data)) data = new VCDataDataContext(Config.GetConnectionString());
  39. return data;
  40. }
  41. }
  42. #region Content Template
  43. public string TempContent
  44. {
  45. get { return Settings["tempcontentlist"] == null ? "Ch?n template" : Settings["tempcontentlist"].ToString(); }
  46. }
  47. public string TempContentDetail
  48. {
  49. get { return Settings["tempcontentdetail"] == null ? "Ch?n template" : Settings["tempcontentdetail"].ToString(); }
  50. }
  51. public string TempContentRelative
  52. {
  53. get { return Settings["tempcontentrelative"] == null ? "Ch?n template" : Settings["tempcontentrelative"].ToString(); }
  54. }
  55. #endregion
  56. public int TabForward
  57. {
  58. get
  59. {
  60. int _tabfwTemp = TabId;
  61. if (Settings["TabForward"] != null)
  62. {
  63. if (!int.TryParse(Settings["TabForward"].ToString(), out _tabfwTemp))
  64. {
  65. _tabfwTemp = TabId;
  66. }
  67. }
  68. return _tabfwTemp;
  69. }
  70. }
  71. public string WriteUrl(string tabid, string detail, string newid, string title)
  72. {
  73. int _tabid;
  74. int.TryParse(tabid, out _tabid);
  75. string url = DotNetNuke.Common.Globals.NavigateURL(_tabid == 0 ? this.TabId : _tabid, "", detail, newid, "title=" + WriteString(title));
  76. return url;
  77. }
  78. public string WriteString(string str)
  79. {
  80. System.Text.StringBuilder sb = new System.Text.StringBuilder();
  81. str = System.Text.RegularExpressions.Regex.Replace(str, "?|?|&#273;|&#272;", "d", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
  82. str = str.Normalize(System.Text.NormalizationForm.FormKD);
  83. for (int i = 0; i < str.Length; i++)
  84. {
  85. if (char.IsWhiteSpace(str[i])) sb.Append('-');
  86. else if (char.GetUnicodeCategory(str[i]) != System.Globalization.UnicodeCategory.NonSpacingMark
  87. && !char.IsPunctuation(str[i])
  88. && !char.IsSymbol(str[i]))
  89. sb.Append(str[i]);
  90. }
  91. return sb.ToString();
  92. } //thiet lap nay dung cho khi su ly tu fil Handler.ashx
  93. private string _homeDirectoryPortal = "";
  94. public string HomeDirectoryPortal
  95. {
  96. get
  97. {
  98. if (string.IsNullOrEmpty(_homeDirectoryPortal)) _homeDirectoryPortal = PortalSettings.HomeDirectory;
  99. return _homeDirectoryPortal;
  100. }
  101. set
  102. {
  103. _homeDirectoryPortal = value;
  104. }
  105. }
  106. private string _homeDirectoryPortalFolder = "";
  107. public string HomeDirectoryPortalFolder
  108. {
  109. get
  110. {
  111. if (string.IsNullOrEmpty(_homeDirectoryPortalFolder)) _homeDirectoryPortalFolder = PortalSettings.HomeDirectoryMapPath;
  112. return _homeDirectoryPortalFolder;
  113. }
  114. set
  115. {
  116. _homeDirectoryPortalFolder = value;
  117. }
  118. }
  119. public string WriteUrlCat(int tabid, string catparam)
  120. {
  121. return DotNetNuke.Common.Globals.NavigateURL(tabid, "", catparam);
  122. }
  123. private int PageSizeDefault
  124. {
  125. get
  126. {
  127. return 10;
  128. }
  129. }
  130. public int PageSize
  131. {
  132. get
  133. {
  134. int _size = PageSizeDefault;
  135. if (Settings["PageSize"] != null)
  136. {
  137. if (!int.TryParse(Settings["PageSize"].ToString(), out _size) || _size < 1)
  138. {
  139. _size = PageSizeDefault;
  140. }
  141. }
  142. return _size;
  143. }
  144. }
  145. public int PageCurr
  146. {
  147. get
  148. {
  149. int currentPage = Request["page"] == null ? 1 : int.Parse(Request["page"].ToString());
  150. return currentPage;
  151. }
  152. }
  153. #region Thuoc tinh tra ve duong dan web cho anh
  154. public string GetWebImageOfThumb(LocationImage lc, string filename)
  155. {
  156. string webpath = HomeDirectoryPortal;
  157. switch (lc)
  158. {
  159. case LocationImage.News:
  160. webpath += "IBusiness/NewsImgFolderOrg_thumb";
  161. break;
  162. case LocationImage.Album:
  163. webpath += "IBusiness/AlbumImgFolderOrg_thumb";
  164. break;
  165. case LocationImage.Slide:
  166. webpath += "IBusiness/SildeImgFolderOrg_thumb";
  167. break;
  168. case LocationImage.Product:
  169. webpath += "IBusiness/ProductImgFolderOrg_thumb";
  170. break;
  171. case LocationImage.Category:
  172. webpath += "IBusiness/CategoryImgFolderOrg_thumb";
  173. break;
  174. default:
  175. break;
  176. }
  177. return webpath + "/" + filename;
  178. }
  179. public string GetWebImgOf(LocationImage lc, string filename)
  180. {
  181. string webpath = HomeDirectoryPortal;
  182. switch (lc)
  183. {
  184. case LocationImage.News:
  185. webpath += "IBusiness/NewsImgFolderOrg";
  186. break;
  187. case LocationImage.Album:
  188. webpath += "IBusiness/AlbumImgFolderOrg";
  189. break;
  190. case LocationImage.Slide:
  191. webpath += "IBusiness/SildeImgFolderOrg";
  192. break;
  193. case LocationImage.Product:
  194. webpath += "IBusiness/ProductImgFolderOrg";
  195. break;
  196. case LocationImage.Category:
  197. webpath += "IBusiness/CategoryImgFolderOrg";
  198. break;
  199. default:
  200. break;
  201. }
  202. return webpath + "/" + filename;
  203. }
  204. public string FixLeng(string input, int leng)
  205. {
  206. return input.Substring(0, leng - 4) + "...";
  207. }
  208. #endregion
  209. #region L?u ?nh vŕo h? th?ng
  210. /// <summary>
  211. /// Luu file anh vao he thong
  212. /// </summary>
  213. /// <param name="fl">Luong file can luu tru</param>
  214. /// <param name="filename">Ten file ban dau</param>
  215. /// <returns>Ten file thuc te tren he thong thu muc vat ly</returns>
  216. public string SaveImage(Stream stream, string _filename, LocationImage lc)
  217. {
  218. string pathFile = "", pathFileThumb = "";
  219. string folderOrg = GetFolderName(lc), folderThumb = folderOrg + "_thumb";
  220. string filename = Guid.NewGuid() + _filename;
  221. pathFile = Path.Combine(folderOrg, filename);
  222. pathFileThumb = Path.Combine(folderThumb, filename);
  223. //tao thu muc neu chua co
  224. if (!Directory.Exists(folderOrg))
  225. {
  226. Directory.CreateDirectory(folderOrg);
  227. }
  228. if (!Directory.Exists(folderThumb))
  229. {
  230. Directory.CreateDirectory(folderThumb);
  231. }
  232. //tao file goc
  233. if (stream.Length == 0) return "";
  234. // Create a FileStream object to write a stream to a file
  235. using (FileStream fileStream = System.IO.File.Create(pathFile, (int)stream.Length))
  236. {
  237. // Fill the bytes[] array with the stream data
  238. byte[] bytesInStream = new byte[stream.Length];
  239. stream.Read(bytesInStream, 0, (int)bytesInStream.Length);
  240. // Use FileStream object to write to the specified file
  241. fileStream.Write(bytesInStream, 0, bytesInStream.Length);
  242. }
  243. //tao file da convert dang thum va luu
  244. SaveImageThumb(pathFile, pathFileThumb);
  245. return filename;
  246. }
  247. private string GetFolderName(LocationImage lc)
  248. {
  249. string foldernamePath = "";
  250. switch (lc)
  251. {
  252. case LocationImage.News:
  253. foldernamePath = "IBusiness\\NewsImgFolderOrg";
  254. break;
  255. case LocationImage.Album:
  256. foldernamePath = "IBusiness\\AlbumImgFolderOrg";
  257. break;
  258. case LocationImage.Slide:
  259. foldernamePath = "IBusiness\\SildeImgFolderOrg";
  260. break;
  261. case LocationImage.Product:
  262. foldernamePath = "IBusiness\\ProductImgFolderOrg";
  263. break;
  264. case LocationImage.Category:
  265. foldernamePath = "IBusiness\\CategoryImgFolderOrg";
  266. break;
  267. default:
  268. break;
  269. }
  270. return Path.Combine(HomeDirectoryPortalFolder, foldernamePath);
  271. }
  272. public void DeleteNewsImage(string filename, LocationImage lc)
  273. {
  274. string pathFile = "", pathFileThumb = "";
  275. string folderOrg = GetFolderName(lc), folderThumb = folderOrg + "_thumb";
  276. pathFile = Path.Combine(folderOrg, filename);
  277. pathFileThumb = Path.Combine(folderThumb, filename);
  278. if (File.Exists(pathFile)) File.Delete(pathFile);
  279. if (File.Exists(pathFileThumb)) File.Delete(pathFileThumb);
  280. }
  281. private void SaveImageThumb(string pathFileSource, string pathFileDes)
  282. {
  283. System.Drawing.Image image = System.Drawing.Image.FromFile(pathFileSource);
  284. System.Drawing.Image thumbnailImage = image.GetThumbnailImage(250, (image.Size.Height * 250) / image.Size.Width, new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback), IntPtr.Zero);
  285. MemoryStream imageStream = new MemoryStream();
  286. thumbnailImage.Save(pathFileDes, System.Drawing.Imaging.ImageFormat.Png);
  287. }
  288. /// <summary>
  289. /// Required, but not used
  290. /// </summary>
  291. /// <returns>true</returns>
  292. public bool ThumbnailCallback()
  293. {
  294. return true;
  295. }
  296. #endregion
  297. }
  298. }