关联摄像头
This commit is contained in:
@@ -0,0 +1,216 @@
|
||||
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
|
||||
{
|
||||
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<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()
|
||||
{
|
||||
|
||||
|
||||
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<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)
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user