TemplateList.aspx.cs 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Security.Cryptography.X509Certificates;
  6. using System.Text;
  7. using System.Web;
  8. using System.Web.UI;
  9. using System.Web.UI.WebControls;
  10. using CB.Common;
  11. using CB.Config;
  12. using CB.Data;
  13. using CB.Entity;
  14. using CB.Framework;
  15. namespace CB.Admin.Plugins.Template
  16. {
  17. public partial class TemplateList : AdminPage
  18. {
  19. private IList<TemplateTypeInfo> TemplateTypeList;
  20. protected void Page_Load(object sender, EventArgs e)
  21. {
  22. TemplateTypeList = TemplateTypeService.ToList();
  23. if (!Page.IsPostBack)
  24. {
  25. InitData();
  26. }
  27. }
  28. protected override void InitData()
  29. {
  30. BindRepeaterList();
  31. }
  32. protected void btnSearch_Click(object sender, EventArgs e)
  33. {
  34. BindRepeaterList();
  35. }
  36. protected override void BindRepeaterList()
  37. {
  38. int recordCount;
  39. repeaterList.DataSource = null;
  40. var list = CB.Data.TemplateService.ToPaging(new Entity.TemplateInfo() { Name = txttypename.Text.Trim() }, AspNetPager1.PageSize, AspNetPager1.CurrentPageIndex, out recordCount);
  41. repeaterList.DataSource = list;
  42. repeaterList.DataBind();
  43. AspNetPager1.RecordCount = recordCount;
  44. //模板类型绑定
  45. BindTemplateType();
  46. //模板路径选择绑定
  47. BindTemplatePageRoot();
  48. }
  49. protected void repeaterList_ItemCommand(object source, RepeaterCommandEventArgs e)
  50. {
  51. if ("dndel" == e.CommandName)
  52. {
  53. if (CB.Data.TemplateService.Delete(TypeConverter.ObjectToInt(e.CommandArgument)))
  54. Logs("删除模板成功", string.Format("模板[ID={0}]", e.CommandArgument));
  55. BindRepeaterList();
  56. }
  57. if ("edit" == e.CommandName)
  58. {
  59. Entity.TemplateInfo entity = CB.Data.TemplateService.Get(TypeConverter.ObjectToInt(e.CommandArgument));
  60. if (null == entity)
  61. return;
  62. labID.Text = entity.Id.ToString();
  63. txtName.Text = entity.Name;
  64. txtFilePath.Text = entity.FilePath;
  65. ddlMethodType.SelectedValue = ((int)entity.MethodType).ToString();
  66. ddlTemplateTypeId.SelectedValue = entity.TemplateType.ToString();
  67. txtDescript.Text = entity.Descript;
  68. }
  69. if ("Publishing" == e.CommandName)
  70. {
  71. var entity = CB.Data.TemplateService.Get(TypeConverter.ObjectToInt(e.CommandArgument));
  72. if (null == entity)
  73. return;
  74. CB.Data.TemplateFiles.LoadFile(entity.FilePath);
  75. ShowMessageBox("发布成功!");
  76. }
  77. }
  78. protected void AspNetPager1_PageChanged(object sender, EventArgs e)
  79. {
  80. BindRepeaterList();
  81. }
  82. //修改或者保存
  83. protected void btnEdit_Click(object sender, EventArgs e)
  84. {
  85. CB.Entity.TemplateInfo entity = new CB.Entity.TemplateInfo();
  86. entity.Id = labID.Text.ToInt();
  87. entity.Name = txtName.Text.Trim();
  88. entity.FilePath = txtFilePath.Text.Trim();
  89. entity.MethodType = (TemplateMethodType)Enum.Parse(typeof(TemplateMethodType), ddlMethodType.SelectedValue.Trim());
  90. entity.TemplateType = ddlTemplateTypeId.SelectedValue.ToInt();
  91. entity.Descript = txtDescript.Text.Trim();
  92. Tuple<bool, string> validate = DataValidate(entity);
  93. if (validate.Item1) //通过验证
  94. {
  95. if (labID.Text != "") //修改
  96. {
  97. if (TemplateService.Update(entity))
  98. {
  99. Logs("修改模板成功", string.Format("修改模板成功[ID={0}]", entity.Id));
  100. ShowMessageBox("提示:修改成功!", string.Format("TemplateList.aspx?authPage={0}", authPage));
  101. }
  102. }
  103. else //新增
  104. {
  105. if (TemplateService.Save(entity))
  106. {
  107. Logs("新增模板成功", string.Format("新增模板成功[Name={0}]", entity.Name));
  108. ShowMessageBox("提示:新增成功!", string.Format("TemplateList.aspx?authPage={0}", authPage));
  109. }
  110. }
  111. ClearPage();
  112. }
  113. else
  114. {
  115. Response.Write(string.Format("<script>alert('{0}');window.opener.location.href=window.opener.location.href;</script>", validate.Item2));
  116. }
  117. BindRepeaterList();
  118. }
  119. //数据验证
  120. public Tuple<bool, string> DataValidate(Entity.TemplateInfo Entity)
  121. {
  122. if (txtName.Text.Trim().Trim() == "")
  123. return new Tuple<bool, string>(false, "请输入模板名称!");
  124. if (txtFilePath.Text.Trim().Trim() == "")
  125. return new Tuple<bool, string>(false, "请输入模板路径!");
  126. if (ddlTemplateTypeId.SelectedValue == "-1")
  127. return new Tuple<bool, string>(false, "请选择模板类型!");
  128. return new Tuple<bool, string>(true, "验证通过!");
  129. }
  130. //清空
  131. protected void btnClear_Click(object sender, EventArgs e)
  132. {
  133. ClearPage();
  134. }
  135. //清空界面数据
  136. protected void ClearPage()
  137. {
  138. labID.Text = "";
  139. txtName.Text = "";
  140. txtFilePath.Text = "";
  141. ddlTemplateTypeId.SelectedValue = "-1";
  142. txtDescript.Text = "";
  143. }
  144. protected void BindTemplateType()
  145. {
  146. ddlTemplateTypeId.Items.Clear();
  147. ddlTemplateTypeId.Items.Add(new ListItem("==请选择==", "-1"));
  148. foreach (var item in TemplateTypeList)
  149. {
  150. ddlTemplateTypeId.Items.Add(new ListItem(item.Name, item.Id.ToString()));
  151. }
  152. }
  153. protected string BindMethodType(int i)
  154. {
  155. if (1 == i)
  156. return "替换型";
  157. if (2 == i)
  158. return "解释型";
  159. return "纯文本型";
  160. }
  161. protected string BindTemplateType(int i)
  162. {
  163. foreach (var item in TemplateTypeList)
  164. {
  165. if (item.Id == i)
  166. {
  167. return item.Name;
  168. }
  169. }
  170. return "";
  171. }
  172. protected void BindTemplatePageRoot()
  173. {
  174. string root = BaseConfigs.GetConfig().TemplateRootPath;
  175. litPrivilege.Text = "";
  176. StringBuilder sp = new StringBuilder(2000);
  177. sp.Append("<ul>");
  178. sp.AppendFormat("<li tname=\"-1\" class=\"jstree-open\" tvalue=\"{0}\"><a>{1}</a>", 0, "模板文件");
  179. NodeUpdate(root, ref sp);
  180. sp.Append("</li>");
  181. sp.Append("</ul>");
  182. litPrivilege.Text = sp.ToString();
  183. }
  184. /// <summary>
  185. /// 更新TreeView下的节点(列出当前目录下的子目录)
  186. /// </summary>
  187. /// <param name="node">上层节点</param>
  188. public void NodeUpdate(string root, ref StringBuilder sp)
  189. {
  190. try
  191. {
  192. sp.Append("<ul>");
  193. //获得指定节点目录的目录对象
  194. DirectoryInfo dir = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory + root);
  195. //遍历该目录下的所有目录
  196. foreach (DirectoryInfo d in dir.GetDirectories())
  197. {
  198. sp.AppendFormat("<li tname=\"-1\" class=\"jstree-icon jstree-last jstree-leaf jstree-unchecked \" tvalue=\"{0}\"><a>{1}</a>", RelationRoot(root + "\\" + d.Name), d.Name); //向指定节点下添加文件目录节点
  199. NodeUpdate(root + "\\" + d.Name, ref sp); //递归
  200. sp.AppendFormat("</li>");
  201. }
  202. //遍历该目录下的所有文件
  203. foreach (FileInfo f in dir.GetFiles())
  204. {
  205. sp.AppendFormat("<li tname=\"-1\" class=\"jstree-icon jstree-last jstree-leaf jstree-unchecked \" tvalue=\"{0}\"><a>{1}</a></li>", RelationRoot(root + "\\" + f.Name), f.Name); ; //向指定节点下添加文件节点
  206. }
  207. sp.Append("</ul>");
  208. }
  209. catch { }
  210. }
  211. public string RelationRoot(string rootpage)
  212. {
  213. string root = BaseConfigs.GetConfig().TemplateRootPath;
  214. return rootpage.Replace(root, "");
  215. }
  216. }
  217. }