using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Security.Cryptography.X509Certificates; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using CB.Common; using CB.Config; using CB.Data; using CB.Entity; using CB.Framework; namespace CB.Admin.Plugins.Template { public partial class TemplateList : AdminPage { private IList TemplateTypeList; protected void Page_Load(object sender, EventArgs e) { TemplateTypeList = TemplateTypeService.ToList(); if (!Page.IsPostBack) { InitData(); } } protected override void InitData() { BindRepeaterList(); } protected void btnSearch_Click(object sender, EventArgs e) { BindRepeaterList(); } protected override void BindRepeaterList() { int recordCount; repeaterList.DataSource = null; var list = CB.Data.TemplateService.ToPaging(new Entity.TemplateInfo() { Name = txttypename.Text.Trim() }, AspNetPager1.PageSize, AspNetPager1.CurrentPageIndex, out recordCount); repeaterList.DataSource = list; repeaterList.DataBind(); AspNetPager1.RecordCount = recordCount; //模板类型绑定 BindTemplateType(); //模板路径选择绑定 BindTemplatePageRoot(); } protected void repeaterList_ItemCommand(object source, RepeaterCommandEventArgs e) { if ("dndel" == e.CommandName) { if (CB.Data.TemplateService.Delete(TypeConverter.ObjectToInt(e.CommandArgument))) Logs("删除模板成功", string.Format("模板[ID={0}]", e.CommandArgument)); BindRepeaterList(); } if ("edit" == e.CommandName) { Entity.TemplateInfo entity = CB.Data.TemplateService.Get(TypeConverter.ObjectToInt(e.CommandArgument)); if (null == entity) return; labID.Text = entity.Id.ToString(); txtName.Text = entity.Name; txtFilePath.Text = entity.FilePath; ddlMethodType.SelectedValue = ((int)entity.MethodType).ToString(); ddlTemplateTypeId.SelectedValue = entity.TemplateType.ToString(); txtDescript.Text = entity.Descript; } if ("Publishing" == e.CommandName) { var entity = CB.Data.TemplateService.Get(TypeConverter.ObjectToInt(e.CommandArgument)); if (null == entity) return; CB.Data.TemplateFiles.LoadFile(entity.FilePath); ShowMessageBox("发布成功!"); } } protected void AspNetPager1_PageChanged(object sender, EventArgs e) { BindRepeaterList(); } //修改或者保存 protected void btnEdit_Click(object sender, EventArgs e) { CB.Entity.TemplateInfo entity = new CB.Entity.TemplateInfo(); entity.Id = labID.Text.ToInt(); entity.Name = txtName.Text.Trim(); entity.FilePath = txtFilePath.Text.Trim(); entity.MethodType = (TemplateMethodType)Enum.Parse(typeof(TemplateMethodType), ddlMethodType.SelectedValue.Trim()); entity.TemplateType = ddlTemplateTypeId.SelectedValue.ToInt(); entity.Descript = txtDescript.Text.Trim(); Tuple validate = DataValidate(entity); if (validate.Item1) //通过验证 { if (labID.Text != "") //修改 { if (TemplateService.Update(entity)) { Logs("修改模板成功", string.Format("修改模板成功[ID={0}]", entity.Id)); ShowMessageBox("提示:修改成功!", string.Format("TemplateList.aspx?authPage={0}", authPage)); } } else //新增 { if (TemplateService.Save(entity)) { Logs("新增模板成功", string.Format("新增模板成功[Name={0}]", entity.Name)); ShowMessageBox("提示:新增成功!", string.Format("TemplateList.aspx?authPage={0}", authPage)); } } ClearPage(); } else { Response.Write(string.Format("", validate.Item2)); } BindRepeaterList(); } //数据验证 public Tuple DataValidate(Entity.TemplateInfo Entity) { if (txtName.Text.Trim().Trim() == "") return new Tuple(false, "请输入模板名称!"); if (txtFilePath.Text.Trim().Trim() == "") return new Tuple(false, "请输入模板路径!"); if (ddlTemplateTypeId.SelectedValue == "-1") return new Tuple(false, "请选择模板类型!"); return new Tuple(true, "验证通过!"); } //清空 protected void btnClear_Click(object sender, EventArgs e) { ClearPage(); } //清空界面数据 protected void ClearPage() { labID.Text = ""; txtName.Text = ""; txtFilePath.Text = ""; ddlTemplateTypeId.SelectedValue = "-1"; txtDescript.Text = ""; } protected void BindTemplateType() { ddlTemplateTypeId.Items.Clear(); ddlTemplateTypeId.Items.Add(new ListItem("==请选择==", "-1")); foreach (var item in TemplateTypeList) { ddlTemplateTypeId.Items.Add(new ListItem(item.Name, item.Id.ToString())); } } protected string BindMethodType(int i) { if (1 == i) return "替换型"; if (2 == i) return "解释型"; return "纯文本型"; } protected string BindTemplateType(int i) { foreach (var item in TemplateTypeList) { if (item.Id == i) { return item.Name; } } return ""; } protected void BindTemplatePageRoot() { string root = BaseConfigs.GetConfig().TemplateRootPath; litPrivilege.Text = ""; StringBuilder sp = new StringBuilder(2000); sp.Append("
    "); sp.AppendFormat("
  • {1}", 0, "模板文件"); NodeUpdate(root, ref sp); sp.Append("
  • "); sp.Append("
"); litPrivilege.Text = sp.ToString(); } /// /// 更新TreeView下的节点(列出当前目录下的子目录) /// /// 上层节点 public void NodeUpdate(string root, ref StringBuilder sp) { try { sp.Append("
    "); //获得指定节点目录的目录对象 DirectoryInfo dir = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory + root); //遍历该目录下的所有目录 foreach (DirectoryInfo d in dir.GetDirectories()) { sp.AppendFormat("
  • {1}", RelationRoot(root + "\\" + d.Name), d.Name); //向指定节点下添加文件目录节点 NodeUpdate(root + "\\" + d.Name, ref sp); //递归 sp.AppendFormat("
  • "); } //遍历该目录下的所有文件 foreach (FileInfo f in dir.GetFiles()) { sp.AppendFormat("
  • {1}
  • ", RelationRoot(root + "\\" + f.Name), f.Name); ; //向指定节点下添加文件节点 } sp.Append("
"); } catch { } } public string RelationRoot(string rootpage) { string root = BaseConfigs.GetConfig().TemplateRootPath; return rootpage.Replace(root, ""); } } }