using BLL; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Linq; namespace FineUIPro.Web.ProjectData { public partial class ProjectMonitorList : PageBase { /// /// 定义项 /// public string ProjectCode { get { return (string)ViewState["ProjectCode"]; } set { ViewState["ProjectCode"] = value; } } public string Id { get { return (string)ViewState["Id"]; } set { ViewState["Id"] = value; } } public string Devices { get { string url = ConfigurationManager.AppSettings["Video_URL"]; string res = APIGetHttpService.Http(url + "api/v1/user/channellist?token=" + URLToken + "&id=" + Id + "&related=true"); string devices = ""; JObject jObject = (JObject)JsonConvert.DeserializeObject(res); JArray channelList = jObject.Value("ChannelList"); HashSet set = new HashSet(); foreach (var c in channelList) { set.Add(c["DeviceID"] + ":" + c["ID"]); } if (set.Count > 0) { devices = string.Join(",", set); } return devices; } set { ViewState["Devices"] = value; } } /// /// 定义项 /// public string URLToken { get { return (string)ViewState["URLToken"]; } set { ViewState["URLToken"] = value; } } #region 加载 /// /// 加载页面 /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.ProjectCode = Request.QueryString["ProjectCode"]; this.URLToken = Request.QueryString["URLToken"]; this.Id = Request.QueryString["Id"]; Funs.DropDownPageSize(this.ddlPageSize); if (this.CurrUser != null && this.CurrUser.PageSize.HasValue) { Grid1.PageSize = this.CurrUser.PageSize.Value; } this.ddlPageSize.SelectedValue = Grid1.PageSize.ToString(); // 绑定表格 this.BindGrid(); } } #endregion #region 绑定数据 /// /// 绑定数据 /// private void BindGrid() { DataTable dt = new DataTable(); dt.Columns.Add("id"); dt.Columns.Add("name"); dt.Columns.Add("serial"); dt.Columns.Add("deviceName"); string url = ConfigurationManager.AppSettings["Video_URL"]; List urls = new List(); string res = APIGetHttpService.Http(url + "api/v1/device/channeltree?token=" + URLToken); List> jsonNvr = JsonConvert.DeserializeObject>>(res); foreach (Dictionary nvr in jsonNvr) { if (string.IsNullOrEmpty(txtProjectName.Text.Trim()) || nvr["customName"].Contains(txtProjectName.Text.Trim())) { string jsonCameras = APIGetHttpService.Http(url + "api/v1/device/channeltree?token=" + URLToken + "&serial=" + nvr["serial"]); List> jsonDiv = JsonConvert.DeserializeObject>>(jsonCameras); foreach (Dictionary div in jsonDiv) { var rowDiv = dt.NewRow(); rowDiv["id"] = div["id"]; rowDiv["deviceName"] = nvr["customName"]; if (!string.IsNullOrEmpty(div["customName"])) { rowDiv["name"] = div["customName"]; } else { rowDiv["name"] = div["name"]; } rowDiv["serial"] = div["code"]; dt.Rows.Add(rowDiv); } } } Grid1.RecordCount = dt.Rows.Count; Grid1.DataSource = this.GetPagedDataTable(Grid1, dt); Grid1.DataBind(); if (!string.IsNullOrEmpty(Devices)) { Grid1.SelectedRowIDArray = Devices.Split(','); } } #endregion #region Grid /// /// /// /// /// protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { BindGrid(); } /// /// /// /// /// protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) { Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); BindGrid(); } protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e) { BindGrid(); } #endregion protected void btnSearch_Click(object sender, EventArgs e) { BindGrid(); } protected void Grid1_RowSelect(object sender, GridRowSelectEventArgs e) { string url = ConfigurationManager.AppSettings["Video_URL"]; APIGetHttpService.Http(url + "api/v1/user/savechannels?token=" + URLToken + "&id=" + Id + "&channels[]=" + e.RowID); } protected void Grid1_RowDeselect(object sender, GridRowSelectEventArgs e) { string url = ConfigurationManager.AppSettings["Video_URL"]; APIGetHttpService.Http(url + "api/v1/user/removechannels?token=" + URLToken + "&id=" + Id + "&channels[]=" + e.RowID); } } }