20211111整合监控视频页面到施工平台

This commit is contained in:
杨红卫 2021-11-11 10:24:56 +08:00
parent d9ca7b3bf7
commit b614e3b4db
8 changed files with 592 additions and 34 deletions

View File

@ -1,17 +1 @@

错误信息开始=====>
错误类型:NullReferenceException
错误信息:未将对象引用设置到对象的实例。
错误堆栈:
在 System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
在 FineUIPro.ResourceHelper.GetResourceContentAsBinary(String resName, String resVersion)
在 FineUIPro.ResourceHandler.ProcessRequest(HttpContext context)
在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
在 System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step)
在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
出错时间:11/09/2021 09:51:28
出错文件:http://localhost:8118/res.axd?img=images.loading._3.f2f5f7_362b36.gif&t=635987008610000000
IP地址:::1
出错时间:11/09/2021 09:51:29


View File

@ -1413,6 +1413,7 @@
<Content Include="TestRun\ProduceTestRun\TestRunReportEdit.aspx" />
<Content Include="TestRun\TestRun.aspx" />
<Content Include="TestRun\TestRunEdit.aspx" />
<Content Include="Video\Video.aspx" />
<Content Include="ZHGL\DataIn\AccidentCauseReportBar.aspx" />
<Content Include="ZHGL\DataIn\AccidentCauseReportBarIn.aspx" />
<Content Include="ZHGL\DataIn\AccidentCauseReportImport.aspx" />
@ -14131,6 +14132,13 @@
<Compile Include="TestRun\TestRunEdit.aspx.designer.cs">
<DependentUpon>TestRunEdit.aspx</DependentUpon>
</Compile>
<Compile Include="Video\Video.aspx.cs">
<DependentUpon>Video.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Video\Video.aspx.designer.cs">
<DependentUpon>Video.aspx</DependentUpon>
</Compile>
<Compile Include="ZHGL\DataIn\AccidentCauseReportBar.aspx.cs">
<DependentUpon>AccidentCauseReportBar.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>

View File

@ -0,0 +1,152 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Video.aspx.cs" Inherits="FineUIPro.Web.Video.Video" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" name="viewport">
<!-- 引用 liveplayer-element.min.js -->
<script type="text/javascript" src="../res/liveplayer/liveplayer-element.min.js"></script>
</head>
<body>
<form id="form1" runat="server">
<script>
function play(id, url) {
var player = document.getElementById(id);
player.setAttribute("video-url", url);
}
var closeid =<%=btnClose.ClientID%>
function closeVideo(id) {
__doPostBack('Panel1$panelLeftRegion$btnClose', id);
}
</script>
<f:PageManager ID="PageManager1" AutoSizePanelID="Panel1" runat="server" />
<f:Panel ID="Panel1" runat="server" ShowBorder="false" ShowHeader="false" Layout="Region">
<Items>
<f:Panel runat="server" ID="panelLeftRegion" RegionPosition="Left" RegionSplit="true"
EnableCollapse="true" Width="300px" Title="设备信息" ShowBorder="true" Layout="VBox"
ShowHeader="true" AutoScroll="true" BodyPadding="5px" IconFont="ArrowCircleLeft">
<Items>
<f:Button ID="btnClose" Text="关闭1" EnablePostBack="true" Hidden="true"
runat="server" OnClick="btnClose_Click">
</f:Button>
<f:Tree ID="tvControlItem" ShowHeader="false" Height="500px" Title="项目信息" OnNodeCommand="tvControlItem_NodeCommand"
runat="server" ShowBorder="false" EnableCollapse="true" EnableSingleClickExpand="true"
AutoLeafIdentification="true" EnableSingleExpand="true" EnableTextSelection="true"
OnNodeExpand="tvControlItem_TreeNodeExpanded">
</f:Tree>
</Items>
</f:Panel>
<f:Panel ID="Panel2" IsFluid="true" CssClass="blockpanel" runat="server" ShowBorder="true"
Layout="VBox" ShowHeader="true" Title="视频监控">
<Items>
<f:Panel ID="Panel3" BoxFlex="1" runat="server"
ShowBorder="false" ShowHeader="false" Layout="HBox" BoxConfigChildMargin="0 5 0 0" MarginBottom="5">
<Items>
<f:Panel ID="Panel4" BoxFlex="1" runat="server" ShowBorder="true" ShowHeader="false">
<Items>
<f:ContentPanel ShowBorder="false" ShowHeader="false" ID="ContentPanel1" runat="server">
<live-player id="player01" live="true">
<div id="div1" onclick="closeVideo('player01')" style="position:absolute;top:5px;right:5px;color:white">关闭</div>
</live-player>
</f:ContentPanel>
</Items>
</f:Panel>
<f:Panel ID="Panel5" BoxFlex="1" runat="server" ShowBorder="true" ShowHeader="false">
<Items>
<f:ContentPanel ShowBorder="false" ShowHeader="false" ID="ContentPanel2" runat="server">
<live-player id="player02" live="true">
<div id="div2" onclick="closeVideo('player02')" style="position:absolute;top:5px;right:5px;color:white">关闭</div>
</live-player>
</f:ContentPanel>
</Items>
</f:Panel>
<f:Panel ID="Panel6" BoxFlex="1" runat="server" ShowBorder="true" ShowHeader="false" Margin="0">
<Items>
<f:ContentPanel ShowBorder="false" ShowHeader="false" ID="ContentPanel3" runat="server">
<live-player id="player03" live="true">
<div id="div3" onclick="closeVideo('player03')" style="position:absolute;top:5px;right:5px;color:white">关闭</div>
</live-player>
</f:ContentPanel>
</Items>
</f:Panel>
</Items>
</f:Panel>
<f:Panel ID="Panel7" BoxFlex="1" runat="server"
ShowBorder="false" ShowHeader="false" Layout="HBox" BoxConfigChildMargin="0 5 0 0">
<Items>
<f:Panel ID="Panel8" BoxFlex="1" runat="server" ShowBorder="true" ShowHeader="false">
<Items>
<f:ContentPanel ShowBorder="false" ShowHeader="false" ID="ContentPanel4" runat="server">
<live-player id="player04" live="true">
<div id="div4" onclick="closeVideo('player04')" style="position:absolute;top:5px;right:5px;color:white">关闭</div>
</live-player>
</f:ContentPanel>
</Items>
</f:Panel>
<f:Panel ID="Panel9" BoxFlex="1" runat="server" ShowBorder="true" ShowHeader="false">
<Items>
<f:ContentPanel ShowBorder="false" ShowHeader="false" ID="ContentPanel5" runat="server">
<live-player id="player05" live="true">
<div id="div5" onclick="closeVideo('player05')" style="position:absolute;top:5px;right:5px;color:white">关闭</div>
</live-player>
</f:ContentPanel>
</Items>
</f:Panel>
<f:Panel ID="Panel10" BoxFlex="1" runat="server" ShowBorder="true" ShowHeader="false" Margin="0">
<Items>
<f:ContentPanel ShowBorder="false" ShowHeader="false" ID="ContentPanel6" runat="server">
<live-player id="player06" live="true">
<div id="div6" onclick="closeVideo('player06')" style="position:absolute;top:5px;right:5px;color:white">关闭</div>
</live-player>
</f:ContentPanel>
</Items>
</f:Panel>
</Items>
</f:Panel>
<f:Panel ID="Panel11" BoxFlex="1" runat="server"
ShowBorder="false" ShowHeader="false" Layout="HBox" BoxConfigChildMargin="0 5 0 0">
<Items>
<f:Panel ID="Panel12" BoxFlex="1" runat="server" ShowBorder="true" ShowHeader="false">
<Items>
<f:ContentPanel ShowBorder="false" ShowHeader="false" ID="ContentPanel7" runat="server">
<live-player id="player07" live="true">
<div id="div7" onclick="closeVideo('player07')" style="position:absolute;top:5px;right:5px;color:white">关闭</div>
</live-player>
</f:ContentPanel>
</Items>
</f:Panel>
<f:Panel ID="Panel13" BoxFlex="1" runat="server" ShowBorder="true" ShowHeader="false">
<Items>
<f:ContentPanel ShowBorder="false" ShowHeader="false" ID="ContentPanel8" runat="server">
<live-player id="player08" live="true">
<div id="div8" onclick="closeVideo('player08')" style="position:absolute;top:5px;right:5px;color:white">关闭</div>
</live-player>
</f:ContentPanel>
</Items>
</f:Panel>
<f:Panel ID="Panel14" BoxFlex="1" runat="server" ShowBorder="true" ShowHeader="false" Margin="0">
<Items>
<f:ContentPanel ShowBorder="false" ShowHeader="false" ID="ContentPanel9" runat="server">
<live-player id="player09" live="true">
<div id="div9" onclick="closeVideo('player09')" style="position:absolute;top:5px;right:5px;color:white">关闭</div>
</live-player>
</f:ContentPanel>
</Items>
</f:Panel>
</Items>
</f:Panel>
</Items>
</f:Panel>
</Items>
</f:Panel>
</form>
</body>
</html>

View File

@ -0,0 +1,140 @@
using BLL;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.Video
{
public partial class Video : PageBase
{
public string playIds
{
get
{
return (string)ViewState["playIds"];
}
set
{
ViewState["playIds"] = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (this.CurrUser != null)
{
this.playIds = "";
this.tvControlItem.Nodes.Clear();
TreeNode rootNode = new TreeNode
{
Text = "项目-设备",
NodeID = "0",
Expanded = true
};
this.tvControlItem.Nodes.Add(rootNode);
try
{
string url = ConfigurationManager.AppSettings["Video_URL"];
List<string> urls = new List<string>();
string res = APIGetHttpService.Http(url + "api/v1/device/channeltree");
List<Dictionary<string, string>> jsonNvr = JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(res);
foreach (Dictionary<string, string> nvr in jsonNvr)
{
TreeNode newNode = new TreeNode
{
NodeID = nvr["id"],
Text = nvr["customName"],
ToolTip = "项目",
Expanded = false
};
rootNode.Nodes.Add(newNode);
string jsonCameras = APIGetHttpService.Http(url + "api/v1/device/channeltree?serial=" + nvr["serial"]);
var data = JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(jsonCameras);
foreach (var video in data)
{
TreeNode tempNode = new TreeNode
{
NodeID = video["id"],
Text = video["name"],
ToolTip = "设备",
EnableClickEvent = true
};
newNode.Nodes.Add(tempNode);
}
}
}
catch (Exception ex)
{
ErrLogInfo.WriteLog(ex, "视频监控", "Video.Video.aspx");
}
}
}
}
#region
/// <summary>
/// 树展开事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void tvControlItem_TreeNodeExpanded(object sender, TreeNodeEventArgs e)
{ }
#endregion
#region TreeView
/// <summary>
/// 点击TreeView
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
{
var id = this.tvControlItem.SelectedNodeID;
if (id.Contains(":"))
{
try
{
string url = ConfigurationManager.AppSettings["Video_URL"];
var stmp = new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds() + "";
string jsonCamera = APIGetHttpService.Http(url + "api/v1/stream/start?serial=" + id.Split(':')[0] + "&code=" + id.Split(':')[1] + "&_=" + stmp);
var data = JsonConvert.DeserializeObject<Dictionary<string, string>>(jsonCamera);
for (int i = 1; i <= 9; i++)
{
if (this.playIds.Contains("player0" + i))
{
continue;
}
else
{
this.playIds += "player0" + i;
PageContext.RegisterStartupScript("play(\"" + "player0" + i + "\",\"" + data["HLS"] + "\")");
break;
}
}
}
catch (Exception ex)
{
ErrLogInfo.WriteLog(ex, "视频监控", "Video.Video.aspx");
}
}
}
#endregion
protected void btnClose_Click(object sender, EventArgs e)
{
var id = Request.Form["__EVENTARGUMENT"];
this.playIds = this.playIds.Replace(id, "");
PageContext.RegisterStartupScript("play(\"" + id + "\",\"\")");
}
}
}

View File

@ -0,0 +1,269 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.Video
{
public partial class Video
{
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.PageManager PageManager1;
/// <summary>
/// Panel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel1;
/// <summary>
/// panelLeftRegion 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel panelLeftRegion;
/// <summary>
/// btnClose 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnClose;
/// <summary>
/// tvControlItem 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Tree tvControlItem;
/// <summary>
/// Panel2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel2;
/// <summary>
/// Panel3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel3;
/// <summary>
/// Panel4 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel4;
/// <summary>
/// ContentPanel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ContentPanel ContentPanel1;
/// <summary>
/// Panel5 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel5;
/// <summary>
/// ContentPanel2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ContentPanel ContentPanel2;
/// <summary>
/// Panel6 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel6;
/// <summary>
/// ContentPanel3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ContentPanel ContentPanel3;
/// <summary>
/// Panel7 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel7;
/// <summary>
/// Panel8 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel8;
/// <summary>
/// ContentPanel4 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ContentPanel ContentPanel4;
/// <summary>
/// Panel9 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel9;
/// <summary>
/// ContentPanel5 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ContentPanel ContentPanel5;
/// <summary>
/// Panel10 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel10;
/// <summary>
/// ContentPanel6 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ContentPanel ContentPanel6;
/// <summary>
/// Panel11 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel11;
/// <summary>
/// Panel12 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel12;
/// <summary>
/// ContentPanel7 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ContentPanel ContentPanel7;
/// <summary>
/// Panel13 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel13;
/// <summary>
/// ContentPanel8 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ContentPanel ContentPanel8;
/// <summary>
/// Panel14 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel14;
/// <summary>
/// ContentPanel9 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ContentPanel ContentPanel9;
}
}

View File

@ -234,7 +234,7 @@
</f:Button>
</li>
<li>
<f:Button runat="server" CssClass="bgbtn" Text="视频监控" OnClick="btnDigitalSite_Click" OnClientClick="openVideo();"
<f:Button runat="server" CssClass="bgbtn" Text="视频监控" OnClick="btnDigitalSite_Click" OnClientClick="parent.removeActiveTab();"
EnablePostBack="true" EnableDefaultState="true" EnableDefaultCorner="false" ID="btnDigitalSite">
</f:Button>
</li>

View File

@ -604,14 +604,16 @@ namespace FineUIPro.Web
this.Tab1.IFrameUrl = "~/common/mainProject.aspx";
}
this.CurrUser.LastProjectId = null;
if (!string.IsNullOrEmpty(type))
{
{
this.CurrUser.LastProjectId = this.CurrUser.LoginProjectId;
if (CommonService.IsHaveSystemPower(this.CurrUser.UserId, type, this.CurrUser.LoginProjectId) || type == Const.Menu_Personal)
{
{
this.XmlDataSource1.DataFile = "common/" + type + ".xml";
this.leftPanel.Hidden = false;
this.Tab1.IFrameUrl = "~/common/main" + type + ".aspx";
this.Tab1.Title = "首页";
if (type == Const.Menu_Personal)
{
this.Tab1.IFrameUrl = "~/Personal/PersonalInfo.aspx";
@ -619,8 +621,15 @@ namespace FineUIPro.Web
else if (type == Const.Menu_ProjectSet)
{
this.Tab1.IFrameUrl = "~/ProjectData/ProjectSetView.aspx";
this.Tab1.Title = "项目";
}
if (type == Const.Menu_PZHGL)
else if (type == Const.Menu_DigitalSite)
{
this.Tab1.IFrameUrl = "~/Video/Video.aspx";
this.leftPanel.Hidden = true;
this.Tab1.Title = "视频监控";
}
else if (type == Const.Menu_PZHGL)
{
//this.Tab1.IFrameUrl = "~/PZHGL/InformationProject/ConstructionPlan.aspx";
this.Tab1.IFrameUrl = "~/HSSE/Manager/HSSELog.aspx";
@ -631,10 +640,6 @@ namespace FineUIPro.Web
this.Tab1.IFrameUrl = "~/PZHGL/GJSX/GJSXList.aspx";
this.Tab1.Title = "关键事项";
}
else
{
this.Tab1.Title = "首页";
}
}
else
{
@ -709,9 +714,9 @@ namespace FineUIPro.Web
protected void btnDigitalSite_Click(object sender, EventArgs e)
{
string url = ConfigurationManager.AppSettings["Video_URL"] + "#/screen";
Response.Write("<script>window.open(" + url + "'',''_blank'')</script>");
// this.MenuSwitchMethod(Const.Menu_DigitalSite);
//string url = ConfigurationManager.AppSettings["Video_URL"] + "#/screen";
//Response.Write("<script>window.open(" + url + "'',''_blank'')</script>");
this.MenuSwitchMethod(Const.Menu_DigitalSite);
}
protected string VideoURL

View File

@ -71165,7 +71165,7 @@ namespace Model
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_QualifiedProjectCode", DbType="NVarChar(500)")]
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_QualifiedProjectCode", DbType="NVarChar(50)")]
public string QualifiedProjectCode
{
get
@ -245131,7 +245131,7 @@ namespace Model
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Address", DbType="NVarChar(200)")]
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Address", DbType="NVarChar(2000)")]
public string Address
{
get
@ -245195,7 +245195,7 @@ namespace Model
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkAreaName", DbType="NVarChar(200)")]
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkAreaName", DbType="NVarChar(MAX)", UpdateCheck=UpdateCheck.Never)]
public string WorkAreaName
{
get
@ -326794,7 +326794,7 @@ namespace Model
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Address", DbType="NVarChar(200)")]
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Address", DbType="NVarChar(2000)")]
public string Address
{
get
@ -326810,7 +326810,7 @@ namespace Model
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkAreaName", DbType="NVarChar(200)")]
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkAreaName", DbType="NVarChar(MAX)", UpdateCheck=UpdateCheck.Never)]
public string WorkAreaName
{
get
@ -334282,7 +334282,7 @@ namespace Model
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(102)")]
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100)")]
public string Name
{
get