using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using CB.Admin.Plugins.TrendChartConfig; using CB.Common; using CB.Data; using CB.Entity; using CB.Framework; namespace CB.Admin.Plugins.Template { public partial class TemplateRelationList : AdminPage { private IList TrendChartList; private IList TemplateList; private IList TemplateTypeList; private IList TemplateRelationLists; protected void Page_Load(object sender, EventArgs e) { TrendChartList = TrendChartService.ToList(); TemplateList = TemplateService.ToList(); TemplateTypeList = TemplateTypeService.ToList(); TemplateRelationLists = TemplateRelationService.ToList(); if (!Page.IsPostBack) { InitData(); } } protected override void InitData() { BindRepeaterList(); BindTree(); } protected void btnSearch_Click(object sender, EventArgs e) { BindRepeaterList(); } protected override void BindRepeaterList() { int recordCount; repeaterList.DataSource = null; var list = CB.Data.TemplateRelationService.ToPaging(new Entity.TemplateRelationInfo() { ChartId = getTrendChartId(txtChartname.Text.Trim()) }, AspNetPager1.PageSize, AspNetPager1.CurrentPageIndex, out recordCount); repeaterList.DataSource = list; repeaterList.DataBind(); BindTrendChart(); } protected void repeaterList_ItemCommand(object source, RepeaterCommandEventArgs e) { if ("dndel" == e.CommandName) { if (CB.Data.TemplateRelationService.Delete(TypeConverter.ObjectToInt(e.CommandArgument))) Logs("删除模板关系成功", string.Format("模板关系[ID={0}]", e.CommandArgument)); BindRepeaterList(); } if ("edit" == e.CommandName) { Entity.TemplateRelationInfo Entity = CB.Data.TemplateRelationService.Get(TypeConverter.ObjectToInt(e.CommandArgument)); if (null == Entity) return; labID.Text = Entity.Id.ToString(); ddlChartId.SelectedValue = Entity.ChartId.ToString(); BindTree(Entity.ChartId); } if ("isEnable" == e.CommandName) { IList addList = new List(); int id = TypeConverter.ObjectToInt(e.CommandArgument); TemplateRelationInfo entity = TemplateRelationLists.ToList().Find((p) => { return p.Id == id; }); entity.IsEnable = true; addList.Add(entity); foreach (var item in TemplateRelationLists) { if (item.Id != id && item.ChartId == entity.ChartId) { addList.Add(new TemplateRelationInfo() { Id = item.Id, ChartId = item.ChartId, TemplateId = item.TemplateId, TemplateTypeId = item.TemplateTypeId, IsEnable = false }); } } foreach (var item in addList) { if (TemplateRelationService.Save(item)) Logs("修改模板关系成功", string.Format("修改模板关系成功[ID={0}]", item.Id)); } ShowMessageBox("提示:修改成功!", string.Format("TemplateRelationList.aspx?authPage={0}", authPage)); } } protected void AspNetPager1_PageChanged(object sender, EventArgs e) { BindRepeaterList(); } //修改或者保存 protected void btnEdit_Click(object sender, EventArgs e) { Tuple validate = Validate(); if (validate.Item1) //通过验证 { string _modules = txtModules.Value; List list = new List(); string[] _data = _modules.Split(','); foreach (string item in _data) { if (!string.IsNullOrEmpty(item) && item != "0") { list.Add(new TemplateRelationInfo() { Id = labID.Text.ToInt(), ChartId = ddlChartId.SelectedValue.ToInt(), TemplateId = item.ToInt(), TemplateTypeId = getTemplateTypeId(item.ToInt()), IsEnable = getIsEnable( ddlChartId.SelectedValue.ToInt(),item.ToInt()) }); } } //删除以前配置 TemplateRelationService.DeleteChartId(ddlChartId.SelectedValue.ToInt()); foreach (var entity in list) { if (TemplateRelationService.Save(entity)) Logs("修改模板关系成功", string.Format("修改模板关系成功[ID={0}]", entity.Id)); } if (labID.Text != "") //修改 { ShowMessageBox("提示:修改成功!", string.Format("TemplateRelationList.aspx?authPage={0}", authPage)); } else //新增 { ShowMessageBox("提示:新增成功!", string.Format("TemplateRelationList.aspx?authPage={0}", authPage)); } ClearPage(); } else { Response.Write(string.Format("", validate.Item2)); } BindRepeaterList(); } //数据验证 public Tuple Validate() { if (ddlChartId.SelectedValue == "-1") return new Tuple(false, "请选择名称!"); return new Tuple(true, "验证通过!"); } //清空 protected void btnClear_Click(object sender, EventArgs e) { ClearPage(); } //清空界面数据 protected void ClearPage() { labID.Text = ""; ddlChartId.SelectedValue = "-1"; BindTree(); } protected void BindTrendChart() { ddlChartId.Items.Clear(); ddlChartId.Items.Add(new ListItem("==请选择==", "-1")); foreach (var item in TrendChartList) { ddlChartId.Items.Add(new ListItem(item.Name, item.Id.ToString())); } } protected string getTrendChartName(object id) { int TrendChartId = TypeConverter.ObjectToInt(id); foreach (var item in TrendChartList) { if (item.Id == TrendChartId) { return item.Name; } } return ""; } protected string getTemplateName(object id) { int TemplateId = TypeConverter.ObjectToInt(id); foreach (var item in TemplateList) { if (item.Id == TemplateId) { return item.Name; } } return ""; } protected string getTemplateTypeName(object id) { int TemplateTypeId = TypeConverter.ObjectToInt(id); foreach (var item in TemplateTypeList) { if (item.Id == TemplateTypeId) { return item.Name; } } return ""; } protected string getIsEnable(object txt) { if (TypeConverter.ObjectToBool(txt, false)) { return "启用"; } else { return "禁用"; } } protected bool getIsEnable(int chartid, int templateid) { foreach (var item in TemplateRelationLists) { if (item.ChartId == chartid && item.TemplateId == templateid) { return item.IsEnable; } } return false; } protected int getTrendChartId(string name) { foreach (var item in TrendChartList) { if (item.Name == name) { return item.Id; } } return 0; } protected int getTemplateTypeId(int template) { foreach (var item in TemplateList) { if (item.Id == template) { return item.TemplateTypeId; } } return 0; } protected void BindTree(int chartid = 0) { litPrivilege.Text = ""; List havetemplates; havetemplates = TemplateRelationLists.ToList().FindAll((info) => { return info.ChartId == chartid; }).Select( (en) => { return en.TemplateId; }).ToList(); StringBuilder sp = new StringBuilder(2000); sp.Append("
    "); sp.AppendFormat("
  • {1}", 0, "模板"); sp.Append("
      "); foreach (var item in TemplateList) { if (havetemplates.Contains(item.Id)) { sp.AppendFormat("
    • {1}
    • ", item.Id, item.Name); continue; } sp.AppendFormat("
    • {1}
    • ", item.Id, item.Name); } sp.Append("
    "); sp.Append("
  • "); sp.Append("
"); litPrivilege.Text = sp.ToString(); } protected void ddlChartId_SelectedIndexChanged(object sender, EventArgs e) { BindTree(ddlChartId.SelectedValue.ToInt()); } } }