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);
}
}
}