CNCEC_SUBQHSE_WUHUAN/SGGL/FineUIPro.Web/ProjectData/ProjectMonitorList.aspx.cs

220 lines
7.0 KiB
C#

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
{
/// <summary>
/// 定义项
/// </summary>
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
{
var sysSet16 = (from x in Funs.DB.Sys_Set where x.SetName == "视频监控地址" select x).ToList().FirstOrDefault();
string url = sysSet16.SetValue;
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<JArray>("ChannelList");
HashSet<string> set = new HashSet<string>();
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;
}
}
/// <summary>
/// 定义项
/// </summary>
public string URLToken
{
get
{
return (string)ViewState["URLToken"];
}
set
{
ViewState["URLToken"] = value;
}
}
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid()
{
var sysSet16 = (from x in Funs.DB.Sys_Set where x.SetName == "视频监控地址" select x).ToList().FirstOrDefault();
DataTable dt = new DataTable();
dt.Columns.Add("id");
dt.Columns.Add("name");
dt.Columns.Add("serial");
dt.Columns.Add("deviceName");
string url = sysSet16.SetValue;
List<string> urls = new List<string>();
string res = APIGetHttpService.Http(url + "api/v1/device/channeltree?token=" + URLToken);
List<Dictionary<string, string>> jsonNvr = JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(res);
foreach (Dictionary<string, string> 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<Dictionary<string, string>> jsonDiv = JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(jsonCameras);
foreach (Dictionary<string, string> 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
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
BindGrid();
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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)
{
var sysSet16 = (from x in Funs.DB.Sys_Set where x.SetName == "视频监控地址" select x).ToList().FirstOrDefault();
string url = sysSet16.SetValue;
APIGetHttpService.Http(url + "api/v1/user/savechannels?token=" + URLToken + "&id=" + Id + "&channels[]=" + e.RowID);
}
protected void Grid1_RowDeselect(object sender, GridRowSelectEventArgs e)
{
var sysSet16 = (from x in Funs.DB.Sys_Set where x.SetName == "视频监控地址" select x).ToList().FirstOrDefault();
string url = sysSet16.SetValue;
APIGetHttpService.Http(url + "api/v1/user/removechannels?token=" + URLToken + "&id=" + Id + "&channels[]=" + e.RowID);
}
}
}