| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Reflection;
- using System.Web;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using CB.Data;
- using CB.Entity;
- using CB.Framework;
- using CB.Common;
- using CB.TrendChart;
- using CB.TrendChart.LotteryTrendChart;
- namespace CB.Admin.Plugins.TrendChartConfig
- {
- public partial class TrendChartItemInfo : AdminPage
- {
- protected int chartId, Cid;
- protected string trendName = string.Empty, Action = string.Empty;
- List<ChartFunction> Attributelist = new List<ChartFunction>(); //方法
- IList<ChartCssConfigInfo> cssList = ChartCssConfigService.ToList(); //样式
- protected void Page_Load(object sender, EventArgs e)
- {
- chartId = WRequest.GetQueryInt("Id");
- Action = WRequest.GetQueryString("Action");
- Cid = WRequest.GetQueryInt("Cid");
- trendName = TrendChartService.Get(chartId).Name;
- BindList<MultiValueFunction>();
- BindList<SingleValueFunction>();
- BindList<SpecialValueFunction>();
- if (!Page.IsPostBack)
- {
- InitData();
- }
- }
- protected override void InitData()
- {
- #region dlFuntionType列表绑定
- //dpFuntionType.Items.Clear();
- for (int i = 0; i < Attributelist.Count; i++)
- {
- dpFuntionType.Items.Add(new ListItem(Attributelist[i].Name + "_" + ((int)Attributelist[i].ItemType).ToString(), ((int)Attributelist[i].ItemType).ToString()));
- }
- if (null != cssList)
- for (int i = 0; i < cssList.Count; i++)
- {
- if (cssList[i].ParentId == 0 || cssList[i].ParentId == -1) //不加载单独的子样式
- {
- dpChartCssId.Items.Add(new ListItem(cssList[i].Name, cssList[i].Id.ToString()));
- }
- }
- #endregion
- BindRepeaterList();
- }
- protected override void BindRepeaterList()
- {
- repeaterList.DataSource = null;
- var list = CB.Data.TrendChartItemService.ToList(new Entity.TrendChartItemInfo() { ChartId = chartId });
- repeaterList.DataSource = list;
- repeaterList.DataBind();
- }
- protected void repeaterList_ItemCommand(object source, RepeaterCommandEventArgs e)
- {
- if ("moveUp" == e.CommandName)
- {
- var list = CB.Data.TrendChartItemService.ToList(new Entity.TrendChartItemInfo() { ChartId = chartId });
- if (list == null || list.Count == 0)
- return;
- for (int i = list.Count - 1; i >= 0; i--)
- {
- if (list[i].Id == TypeConverter.ObjectToInt(e.CommandArgument))
- {
- if (i > 0)
- {
- list[i].OrderBy = list[i].OrderBy - 1;
- if (CB.Data.TrendChartItemService.Update(list[i]))
- {
- list[i - 1].OrderBy = list[i - 1].OrderBy + 1;
- if (TrendChartItemService.Update(list[i - 1]))
- {
- ChangeState(TrendChartStatus.Test, chartId);
- Logs("上移走势图项配置", string.Format("上移走势图项配置[ID={0}]", e.CommandArgument));
- }
- }
- }
- else
- {
- return;
- }
- }
- }
- }
- if ("moveDown" == e.CommandName)
- {
- var list = CB.Data.TrendChartItemService.ToList(new Entity.TrendChartItemInfo() { ChartId = chartId });
- if (list == null || list.Count == 0)
- return;
- for (int i = list.Count - 1; i >= 0; i--)
- {
- if (list[i].Id == TypeConverter.ObjectToInt(e.CommandArgument))
- {
- if (i < list.Count - 1)
- {
- if (list[i].Id == TypeConverter.ObjectToInt(e.CommandArgument))
- {
- list[i].OrderBy = list[i].OrderBy + 1;
- if (CB.Data.TrendChartItemService.Update(list[i]))
- {
- list[i + 1].OrderBy = list[i + 1].OrderBy - 1;
- if (TrendChartItemService.Update(list[i + 1]))
- {
- ChangeState(TrendChartStatus.Test, chartId);
- Logs("下移走势图项配置", string.Format("下移走势图项配置[ID={0}]", e.CommandArgument));
- }
- }
- }
- }
- else
- {
- return;
- }
- }
- }
- }
- if ("dndel" == e.CommandName)
- {
- CB.Data.TrendChartItemService.Delete(TypeConverter.ObjectToInt(e.CommandArgument));
- ChangeState(TrendChartStatus.Test, chartId);
- Logs("删除走势图项配置", string.Format("删除走势图项配置[ID={0}]", e.CommandArgument));
- }
- if ("edit" == e.CommandName)
- {
- labID.Text = TypeConverter.ObjectToInt(e.CommandArgument).ToString();
- Entity.TrendChartItemInfo Entity = CB.Data.TrendChartItemService.Get(TypeConverter.ObjectToInt(e.CommandArgument));
- if (null == Entity)
- return;
- txtChartItemName.Text = Entity.ChartItemName;
- txtCycle.Text = Entity.Cycle.ToString();
- txtItemMinValue.Text = Entity.ItemMinValue.ToString();
- txtItemMaxValue.Text = Entity.ItemMaxValue.ToString();
- txtSplitNumberOfDX.Text = Entity.SplitNumberOfDX.ToString();
- txtItemCount.Text = Entity.ItemCount.ToString();
- txtItemString.Text = string.Join(",", Entity.ItemString);
- txtIndexStart.Text = Entity.IndexStart.ToString();
- txtIndexEnd.Text = Entity.IndexEnd.ToString();
- dpDrawLine.SelectedValue = Entity.DrawLine ? "1" : "0";
- ListItem chartli = ddlTrendChartType.Items.FindByValue(((int)Entity.ChartType).ToString());
- if (chartli != null)
- {
- ddlTrendChartType.ClearSelection();
- chartli.Selected = true;
- }
- for (int i = 0; i < Attributelist.Count; i++)
- {
- if (Attributelist[i].ItemType == Entity.FuntionType)
- {
- dpFuntionType.SelectedValue = ((int)Entity.FuntionType).ToString();
- break;
- }
- }
- try
- {
- dpChartCssId.Items.Clear();
- ListItem li = new ListItem();
- li.Text = "==请选择==";
- li.Value = "-1";
- dpChartCssId.Items.Add(li);
- if (null != cssList)
- for (int i = 0; i < cssList.Count; i++)
- {
- if (cssList[i].ParentId == 0 || cssList[i].ParentId == -1) //不加载单独的子样式
- {
- if (dpFuntionType.SelectedValue == cssList[i].FuntionTypeCss.ToString())
- {
- dpChartCssId.Items.Add(new ListItem(cssList[i].Name, cssList[i].Id.ToString()));
- }
- }
- }
- dpChartCssId.SelectedValue = Entity.ChartCssId.ToString();
- }
- catch
- {
- dpChartCssId.SelectedValue = "-1";
- }
- txtOrderBy.Text = Entity.OrderBy.ToString();
- }
- BindRepeaterList();
- }
- public string GetChartName(int chartid)
- {
- var entity = CB.Data.TrendChartService.Get(chartid);
- return null != entity ? entity.Name : "";
- }
- //修改或者保存
- protected void btnEdit_Click(object sender, EventArgs e)
- {
- CB.Entity.TrendChartItemInfo Entity = new CB.Entity.TrendChartItemInfo();
- Entity.ChartId = chartId;
- Entity.ChartType = TypeConverter.StringToEnum<TrendChartType>(ddlTrendChartType.SelectedValue);
- Entity.ChartItemName = txtChartItemName.Text;
- Entity.Cycle = txtCycle.Text.ToInt();
- Entity.ItemMinValue = txtItemMinValue.Text.ToInt();
- Entity.ItemMaxValue = txtItemMaxValue.Text.ToInt();
- Entity.SplitNumberOfDX = txtSplitNumberOfDX.Text.ToInt();
- Entity.ItemCount = txtItemCount.Text.ToInt();
- Entity.ItemString = txtItemString.Text.TrimEnd(',').Split(',');
- Entity.IndexStart = txtIndexStart.Text.ToInt();
- Entity.IndexEnd = txtIndexEnd.Text.ToInt();
- Entity.DrawLine = dpDrawLine.SelectedValue == "1" ? true : false;
- for (int i = 0; i < Attributelist.Count; i++)
- {
- if (((int)Attributelist[i].ItemType).ToString() == dpFuntionType.SelectedValue)
- {
- Entity.FuntionType = Attributelist[i].ItemType;
- Entity.ClassName = Attributelist[i].ClassName;
- break;
- }
- }
- Entity.ChartCssId = dpChartCssId.SelectedValue.ToInt();
- Entity.OrderBy = txtOrderBy.Text.ToInt();
- Tuple<bool, string> validate = Validate(Entity);
- Entity.TrendChartInfo model = CB.Data.TrendChartService.Get(chartId);
- if (null != model)
- model.Status = TrendChartStatus.Test;
- if (validate.Item1) //通过验证
- {
- if (labID.Text != "") //修改
- {
- Entity.Id = labID.Text.ToInt();
- if (TrendChartItemService.Update(Entity))
- {
- if (TrendChartService.Update(model))
- {
- ClearPage();
- ChangeState(TrendChartStatus.Test, chartId);
- Logs("修改走势图项配置", string.Format("修改走势图项配置[ID={0}]", Entity.Id));
- ShowMessageBox("提示:修改成功!", string.Format("TrendChartItemInfo.aspx?Cid={0}&Id={1}&Action={2}&authPage={3}", Cid, chartId, Action, authPage));
- }
- }
- labID.Text = "";
- }
- else //新增
- {
- if (TrendChartItemService.Save(Entity))
- {
- if (TrendChartService.Update(model))
- {
- ClearPage();
- ChangeState(TrendChartStatus.Test, chartId);
- Logs("新增走势图项配置", string.Format("新增走势图项配置[Name={0}]", Entity.ChartItemName));
- ShowMessageBox("提示:新增成功!", string.Format("TrendChartItemInfo.aspx?Cid={0}&Id={1}&Action={2}&authPage={3}", Cid, chartId, Action, authPage));
- }
- }
- }
- }
- else
- {
- Response.Write(string.Format("<script>alert('{0}');window.opener.location.href=window.opener.location.href;</script>", validate.Item2));
- }
- BindRepeaterList();
- }
- //数据验证
- public Tuple<bool, string> Validate(Entity.TrendChartItemInfo Entity)
- {
- if (txtChartItemName.Text.Trim().Trim() == "" || txtChartItemName.Text.Trim().Trim() == "" || txtCycle.Text.Trim().Trim() == "" || txtItemMinValue.Text.Trim() == "" || txtItemMaxValue.Text.Trim() == "" || txtSplitNumberOfDX.Text.Trim() == "" || txtItemCount.Text.Trim() == "" || txtItemString.Text.Trim() == "" || txtIndexStart.Text.Trim() == "" || txtIndexEnd.Text.Trim() == "" || dpDrawLine.SelectedValue == "-1" || dpFuntionType.SelectedValue == "-1" || dpChartCssId.SelectedValue == "-1" || txtOrderBy.Text.Trim() == "" || ddlTrendChartType.SelectedValue == "")
- return new Tuple<bool, string>(false, "请检查是否填完数据(所有项都必须填写值)!");
- txtItemString.Text = "";
- txtIndexStart.Text = "-1";
- txtIndexEnd.Text = "-1";
- dpDrawLine.SelectedValue = "-1";
- dpFuntionType.SelectedValue = "-1";
- dpChartCssId.SelectedValue = "-1";
- txtOrderBy.Text = "";
- if (Entity.ItemString.Length != Entity.ItemCount)
- return new Tuple<bool, string>(false, "配置项个数不等于项长度!");
- if (Entity.ItemMinValue != -1 || Entity.ItemMaxValue != -1)
- if (Entity.ItemMaxValue < Entity.ItemMinValue)
- return new Tuple<bool, string>(false, "项的最大值小于最小值!");
- //else if ((Entity.ItemMaxValue - Entity.ItemMinValue + 1) != Entity.ItemCount)
- // return new Tuple<bool, string>(false, "配置项最大值和最小值之间个数不等于项长度!");
- else if (Entity.SplitNumberOfDX != -1)
- if (Entity.ItemMaxValue < Entity.SplitNumberOfDX && Entity.SplitNumberOfDX > Entity.ItemMinValue)
- return new Tuple<bool, string>(false, "项的大小分隔值不在配置项最大值和最小值之间!");
- return new Tuple<bool, string>(true, "验证通过!");
- }
- //绑定方法列表方法
- private void BindList<T>()
- {
- MethodInfo[] methodList = typeof(T).GetMethods();
- if (null != methodList && 0 < methodList.Length)
- {
- foreach (MethodInfo item in methodList)
- {
- ChartFunction[] Description = item.GetCustomAttributes(typeof(ChartFunction), false) as ChartFunction[];
- if (null != Description && 1 <= Description.Length)
- Attributelist.Add(new ChartFunction(Description[0].Name, Description[0].ItemType, Description[0].ClassName));
- }
- }
- }
- //清空
- protected void btnClear_Click(object sender, EventArgs e)
- {
- ClearPage();
- }
- //清空界面数据
- protected void ClearPage()
- {
- labID.Text = "";
- txtChartItemName.Text = "";
- txtCycle.Text = "-1";
- txtItemMinValue.Text = "-1";
- txtItemMaxValue.Text = "-1";
- txtSplitNumberOfDX.Text = "-1";
- txtItemCount.Text = "1";
- txtItemString.Text = "";
- txtIndexStart.Text = "-1";
- txtIndexEnd.Text = "-1";
- dpDrawLine.SelectedValue = "-1";
- dpFuntionType.SelectedValue = "-1";
- dpChartCssId.SelectedValue = "-1";
- txtOrderBy.Text = "";
- dpChartCssId.Items.Clear();
- ListItem li = new ListItem();
- li.Text = "==请选择==";
- li.Value = "-1";
- dpChartCssId.Items.Add(li);
- if (null != cssList)
- for (int i = 0; i < cssList.Count; i++)
- {
- if (cssList[i].ParentId == 0 || cssList[i].ParentId == -1) //不加载单独的子样式
- {
- dpChartCssId.Items.Add(new ListItem(cssList[i].Name, cssList[i].Id.ToString()));
- }
- }
- }
- //生成走势图数据
- protected void btn_CreateTrendChart_Click(object sender, EventArgs e)
- {
- var t = CreateTrendChartData(Cid, chartId, 0);
- if (t.Item1)
- ShowMessageBox(string.IsNullOrEmpty(t.Item2) ? "数据生成成功" : t.Item2);
- else
- ShowMessageBox(string.IsNullOrEmpty(t.Item2) ? "数据生成失败" : t.Item2);
- }
- //只能选择相应项对应的样式
- protected void dpFuntionType_SelectedIndexChanged(object sender, EventArgs e)
- {
- dpChartCssId.Items.Clear();
- ListItem li = new ListItem();
- li.Text = "==请选择==";
- li.Value = "-1";
- dpChartCssId.Items.Add(li);
- if (null != cssList)
- for (int i = 0; i < cssList.Count; i++)
- {
- if (cssList[i].ParentId == 0 || cssList[i].ParentId == -1) //不加载单独的子样式
- {
- if (dpFuntionType.SelectedValue == cssList[i].FuntionTypeCss.ToString())
- {
- dpChartCssId.Items.Add(new ListItem(cssList[i].Name, cssList[i].Id.ToString()));
- }
- }
- }
- }
- protected void LinkButton_CssEdit_Click(object sender, EventArgs e)
- {
- Response.Redirect("ChartCssConfigEdit.aspx?authPage=" + authPage + "&Id=" + dpChartCssId.SelectedValue + "&Action=Modify");
- }
- }
- }
|