220 lines
7.0 KiB
C#
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);
|
|
}
|
|
}
|
|
} |