using System ;
using System.Collections ;
using System.Collections.Generic ;
using System.Configuration ;
using System.Data ;
using System.Web ;
using System.Web.Security ;
using System.Web.UI ;
using System.Web.UI.HtmlControls ;
using System.Web.UI.WebControls ;
using System.Web.UI.WebControls.WebParts ;
using System.Text ;
using DSWeb.EntityDA ;
using DSWeb.Models ;
using System.Xml ;
using System.Text.RegularExpressions ;
namespace DSWeb.ParameterSet
{
public partial class CodeLoadportSetGridSource : System . Web . UI . Page
{
private int iCurrentPage ;
private int iShowPage ;
private string strHandle ; //值为"page"获取分页状态值数组 值为"list"获取日志显示JSON数据 值为"columns"获取日志显示记录 值为"rename"更新列标题
public string strUserID = "" ; //"04eaeac5-f271-45d1-b17b-ad4ccbab63d0";//用户GID
private string strType = "36" ; //Grid模块号
private string strOldHeader ;
private string strNewHeader ;
UnicodeEncoding unicode = new UnicodeEncoding ( ) ;
protected void Page_Load ( object sender , EventArgs e )
{
if ( Session [ "USERID" ] ! = null )
{
strUserID = Session [ "USERID" ] . ToString ( ) . Trim ( ) ;
}
else
{
Server . Transfer ( "~/Error/FriendError.aspx" ) ;
return ;
//strUserID = "";
}
/ /
if ( Request . QueryString [ "handle" ] ! = null )
{
strHandle = Request . QueryString [ "handle" ] . ToString ( ) . Trim ( ) . ToLower ( ) ;
}
if ( Request . QueryString [ "cur_page" ] ! = null )
{
iCurrentPage = int . Parse ( Request . QueryString [ "cur_page" ] . ToString ( ) . Trim ( ) ) ;
}
if ( Request . QueryString [ "show_page" ] ! = null )
{
iShowPage = int . Parse ( Request . QueryString [ "show_page" ] . ToString ( ) . Trim ( ) ) ;
}
/ /
ViewState [ "hid_sel" ] = "" ;
if ( Request . QueryString [ "CNAME" ] ! = null & & Request . QueryString [ "CNAME" ] . ToString ( ) . Trim ( ) ! = "" )
{
string strCNAME = unicode . GetString ( unicode . GetBytes ( Regex . Unescape ( Request . QueryString [ "CNAME" ] . ToString ( ) . Trim ( ) ) ) ) ;
ViewState [ "hid_sel" ] + = " and ([CNAME] like '%" + strCNAME + "%' or PORT like '%" + strCNAME + "%')" ;
}
/ /
string strJSON = "" ;
if ( strHandle ! = null )
{
if ( strHandle . Equals ( "list" ) )
{
if ( iCurrentPage < = 0 & & iShowPage < 0 )
{
strJSON = "-2" ; //提交页数参数错误
}
}
if ( strHandle . Trim ( ) . ToLower ( ) . Equals ( "setting" ) )
{
Response . Write ( GetUserSettingJson ( ) ) ;
}
if ( strHandle . Trim ( ) . ToLower ( ) . Equals ( "page" ) )
{
Response . Write ( GetPageInfo ( ) . ToString ( ) ) ;
}
if ( strHandle . Trim ( ) . ToLower ( ) . Equals ( "list" ) )
{
Response . Write ( GetLogContent ( iShowPage , iCurrentPage ) ) ;
}
if ( strHandle . Trim ( ) . ToLower ( ) . Equals ( "rename" ) )
{
if ( Request . QueryString [ "old_header" ] ! = null & & Request . QueryString [ "new_header" ] ! = null )
{
UnicodeEncoding unicode = new UnicodeEncoding ( ) ;
strOldHeader = unicode . GetString ( unicode . GetBytes ( Regex . Unescape ( Request . QueryString [ "old_header" ] . ToString ( ) ) ) ) ;
strNewHeader = unicode . GetString ( unicode . GetBytes ( Regex . Unescape ( Request . QueryString [ "new_header" ] . ToString ( ) ) ) ) ;
Response . Write ( UpdateColumnHeader ( strOldHeader , strNewHeader ) ) ;
}
else
{
Response . Write ( "-1" ) ; //GET 参数错误
}
}
}
else
{
strJSON = "-1" ; //GET 参数错误
}
}
private int UpdateColumnHeader ( string tempOldHeader , string tempNewHeader )
{
int iResult = 0 ;
UserSettingDA userSettingDA = new UserSettingDA ( ) ;
UserSettingEntity userSettingEntity = userSettingDA . GetUserSettingByUserIDType ( strUserID , strType ) ;
GridEntity gridEntity = null ;
if ( userSettingEntity ! = null )
{
if ( userSettingEntity . GID ! = null )
{
gridEntity = GetSettingXml ( userSettingEntity . Xml ) ;
foreach ( GridColumnEntity column in gridEntity . Columns )
{
if ( column . Description . Equals ( tempOldHeader ) )
{
column . Description = tempNewHeader ;
break ;
}
}
userSettingEntity . Xml = GetUserSettingXml ( gridEntity ) . OuterXml ;
iResult = userSettingDA . UpdateUserSetting ( userSettingEntity ) ;
}
else
{
iResult = - 3 ; //没有相关用户Grid设置记录
}
}
else
{
iResult = - 3 ; //没有相关用户Grid设置记录
}
return iResult ;
}
private string GetUserSettingJson ( )
{
UserSettingDA userSettingDA = new UserSettingDA ( ) ;
UserSettingEntity userSettingEntity = userSettingDA . GetUserSettingByUserIDType ( strUserID , strType ) ;
GridEntity gridEntity = null ;
StringBuilder settingBuilder = new StringBuilder ( ) ;
if ( userSettingEntity ! = null )
{
if ( userSettingEntity . GID ! = null )
{
gridEntity = GetSettingXml ( userSettingEntity . Xml ) ;
settingBuilder . Append ( "{" ) ;
settingBuilder . Append ( "\"show\":" + gridEntity . PagePreCount + "," ) ;
settingBuilder . Append ( "\"columns\":" ) ;
int i = 0 ;
StringBuilder columnGroupBuilder = new StringBuilder ( ) ;
while ( gridEntity . Columns . Count > i )
{
foreach ( GridColumnEntity column in gridEntity . Columns )
{
if ( column . Index = = i )
{
StringBuilder columnBuilder = new StringBuilder ( ) ;
columnBuilder . Append ( "{\"name\":\"" + column . Name + "\"," ) ;
columnBuilder . Append ( "\"description\":\"" + column . Description + "\"," ) ;
columnBuilder . Append ( "\"index\":" + column . Index . ToString ( ) + "," ) ;
columnBuilder . Append ( "\"width\":" + column . Width . ToString ( ) + "," ) ;
columnBuilder . Append ( "\"visible\":" + column . VisibleState . ToString ( ) ) ;
columnGroupBuilder . Append ( columnBuilder . ToString ( ) + "}," ) ;
break ;
}
}
i + + ;
}
string strGroup = columnGroupBuilder . ToString ( ) . Trim ( ) ;
if ( strGroup . EndsWith ( "," ) )
{
strGroup = strGroup . Substring ( 0 , strGroup . Length - 1 ) ;
}
strGroup = "[" + strGroup + "]" ;
settingBuilder . Append ( strGroup ) ;
settingBuilder . Append ( "}" ) ;
}
else
{
settingBuilder . Append ( "-3" ) ; //没有相关用户Grid设置记录
}
}
else
{
settingBuilder . Append ( "-3" ) ; //没有相关用户Grid设置记录
}
return settingBuilder . ToString ( ) ;
}
private GridEntity GetSettingXml ( string strXml )
{
XmlDocument xmlSettingDoc = new XmlDocument ( ) ;
GridEntity gridEntity = new GridEntity ( ) ;
try
{
xmlSettingDoc . LoadXml ( strXml ) ;
gridEntity . GID = xmlSettingDoc . ChildNodes [ 0 ] . ChildNodes [ 0 ] . InnerText . Trim ( ) ;
gridEntity . UserID = xmlSettingDoc . ChildNodes [ 0 ] . ChildNodes [ 1 ] . InnerText . Trim ( ) ;
gridEntity . CreateTime = DateTime . Parse ( xmlSettingDoc . ChildNodes [ 0 ] . ChildNodes [ 2 ] . InnerText . Trim ( ) ) ;
IList < GridColumnEntity > columnsEntities = new List < GridColumnEntity > ( ) ;
int iColCount = xmlSettingDoc . ChildNodes [ 0 ] . ChildNodes [ 3 ] . ChildNodes . Count ;
for ( int i = 0 ; i < iColCount ; i + + )
{
GridColumnEntity columnEntity = new GridColumnEntity ( ) ;
//columnEntity.GID = xmlSettingDoc.ChildNodes[0].ChildNodes[3].ChildNodes[0].ToString();
columnEntity . Name = xmlSettingDoc . ChildNodes [ 0 ] . ChildNodes [ 3 ] . ChildNodes [ i ] . ChildNodes [ 0 ] . InnerText . Trim ( ) ;
columnEntity . Description = xmlSettingDoc . ChildNodes [ 0 ] . ChildNodes [ 3 ] . ChildNodes [ i ] . ChildNodes [ 1 ] . InnerText . Trim ( ) ;
columnEntity . Index = int . Parse ( xmlSettingDoc . ChildNodes [ 0 ] . ChildNodes [ 3 ] . ChildNodes [ i ] . ChildNodes [ 2 ] . InnerText . Trim ( ) ) ;
columnEntity . Width = int . Parse ( xmlSettingDoc . ChildNodes [ 0 ] . ChildNodes [ 3 ] . ChildNodes [ i ] . ChildNodes [ 3 ] . InnerText . Trim ( ) ) ;
columnsEntities . Add ( columnEntity ) ;
}
gridEntity . Columns = columnsEntities ;
gridEntity . GroupBy = xmlSettingDoc . ChildNodes [ 0 ] . ChildNodes [ 4 ] . InnerText . Trim ( ) ;
gridEntity . DefaultPrePageCount = int . Parse ( xmlSettingDoc . ChildNodes [ 0 ] . ChildNodes [ 5 ] . ChildNodes [ 0 ] . InnerText . Trim ( ) ) ;
gridEntity . PagePreCount = int . Parse ( xmlSettingDoc . ChildNodes [ 0 ] . ChildNodes [ 5 ] . ChildNodes [ 1 ] . InnerText . Trim ( ) ) ;
}
catch ( Exception error )
{
throw ( error ) ;
}
return gridEntity ;
}
private int GetPageInfo ( )
{
LogDA logDA = new LogDA ( ) ;
StringBuilder logBuilder = new StringBuilder ( ) ;
string strSql = String . Format ( "SELECT COUNT(*) FROM code_loadport WHERE 1=1 " + ViewState [ "hid_sel" ] . ToString ( ) . Trim ( ) ) ;
int iTotal = logDA . GetPageTotal ( strSql ) ;
return iTotal ;
}
private string GetLogContent ( int tempShowPage , int tempCurPage )
{
LogDA logDA = new LogDA ( ) ;
StringBuilder logBuilder = new StringBuilder ( ) ;
string strSql = "" ;
string strTopInclude = "" ;
string strTopNotInclude = "" ;
if ( tempShowPage > 0 & & tempCurPage > 0 )
{
if ( tempCurPage = = 1 )
{
strSql = String . Format ( "SELECT {0} PORTID,PORT,CNAME,EDICODE,QUYU FROM code_loadport WHERE 1=1 " + ViewState [ "hid_sel" ] . ToString ( ) . Trim ( ) + " ORDER BY PORT " , "top " + tempShowPage ) ;
}
else
{
strTopNotInclude = "top " + ( tempShowPage * ( tempCurPage - 1 ) ) ; //RowCount*PageNum
strTopInclude = "top " + tempShowPage ; //RowCount*PageNum
strSql = String . Format ( "SELECT PORTID,PORT,CNAME,EDICODE,QUYU FROM (SELECT {1} * FROM code_loadport WHERE PORTID NOT IN (SELECT {0} PORTID FROM code_loadport where 1=1 " + ViewState [ "hid_sel" ] . ToString ( ) . Trim ( ) + " ORDER BY PORT) " + ViewState [ "hid_sel" ] . ToString ( ) . Trim ( ) + " ORDER BY PORT) AS A" , strTopNotInclude , strTopInclude ) ;
}
}
else
{
strSql = " SELECT PORTID,PORT,CNAME,EDICODE,QUYU FROM code_loadport WHERE 1=1 " + ViewState [ "hid_sel" ] . ToString ( ) . Trim ( ) + " ORDER BY PORT" ;
}
DataTable logTable = GetSqlDataIndex ( logDA . GetExcuteSql ( strSql ) . Tables [ 0 ] ) ;
logBuilder . Append ( "{" ) ;
logBuilder . Append ( "rows:[" ) ;
for ( int i = 0 ; i < logTable . Rows . Count ; i + + )
{
logBuilder . Append ( "{id:\"" + logTable . Rows [ i ] [ 0 ] . ToString ( ) + "\"," ) ;
logBuilder . Append ( "data:[" ) ;
//logBuilder.Append("\"0\",");
for ( int j = 1 ; j < logTable . Columns . Count ; j + + )
{
if ( j = = logTable . Columns . Count - 1 )
{
logBuilder . Append ( "\"" + logTable . Rows [ i ] [ j ] . ToString ( ) + "\"" ) ;
}
else
{
logBuilder . Append ( "\"" + logTable . Rows [ i ] [ j ] . ToString ( ) + "\"," ) ;
}
}
if ( i = = logTable . Rows . Count - 1 )
{
logBuilder . Append ( "]}" ) ;
}
else
{
logBuilder . Append ( "]}," ) ;
}
}
logBuilder . Append ( "]" ) ;
logBuilder . Append ( "}" ) ;
return logBuilder . ToString ( ) ;
}
private string GetSeaExportInfoBusinessListGridSource ( )
{
//GetLogGridSource
LogDA logDA = new LogDA ( ) ;
StringBuilder logBuilder = new StringBuilder ( ) ;
StringBuilder userdateBuilder = new StringBuilder ( ) ;
StringBuilder dataBuilder = new StringBuilder ( ) ;
string strSql = String . Format ( "SELECT COUNT(*) FROM code_loadport WHERE 1=1 " + ViewState [ "hid_sel" ] . ToString ( ) . Trim ( ) ) ;
DataTable logTable = logDA . GetExcuteSql ( strSql ) . Tables [ 0 ] ;
logBuilder . Append ( "{" ) ;
logBuilder . Append ( "rows:[" ) ;
for ( int i = 0 ; i < logTable . Rows . Count ; i + + )
{
logBuilder . Append ( "{id:\"" + logTable . Rows [ i ] [ 0 ] . ToString ( ) + "\"," ) ;
userdateBuilder . Append ( "userdata:{" ) ;
dataBuilder . Append ( "data:[" ) ;
for ( int j = 1 ; j < logTable . Columns . Count ; j + + )
{
if ( j = = logTable . Columns . Count - 1 )
{
userdateBuilder . Append ( "\"" + logTable . Columns [ j ] . ColumnName + "\":\"" + logTable . Rows [ i ] [ j ] . ToString ( ) + "\"" ) ;
dataBuilder . Append ( "\"" + logTable . Rows [ i ] [ j ] . ToString ( ) + "\"" ) ;
}
else
{
userdateBuilder . Append ( "\"" + logTable . Columns [ j ] . ColumnName + "\":\"" + logTable . Rows [ i ] [ j ] . ToString ( ) + "\"," ) ;
dataBuilder . Append ( "\"" + logTable . Rows [ i ] [ j ] . ToString ( ) + "\"," ) ;
}
}
userdateBuilder . Append ( "}" ) ;
dataBuilder . Append ( "]" ) ;
logBuilder . Append ( userdateBuilder . ToString ( ) + "," ) ;
logBuilder . Append ( dataBuilder ) ;
if ( i = = logTable . Rows . Count - 1 )
{
logBuilder . Append ( "}" ) ;
}
else
{
logBuilder . Append ( "}," ) ;
}
}
logBuilder . Append ( "]" ) ;
logBuilder . Append ( "}" ) ;
return logBuilder . ToString ( ) ;
//return logBuilder.ToString();
}
private DataTable GetSqlDataIndex ( DataTable tempTable )
{
UserSettingDA userSettingDA = new UserSettingDA ( ) ;
UserSettingEntity userSettingEntity = userSettingDA . GetUserSettingByUserIDType ( strUserID , strType ) ;
GridEntity gridEntity = null ;
StringBuilder settingBuilder = new StringBuilder ( ) ;
DataTable dataTable = new DataTable ( ) ;
if ( userSettingEntity ! = null )
{
if ( userSettingEntity . GID ! = null )
{
gridEntity = GetSettingXml ( userSettingEntity . Xml ) ;
int i = 0 ;
StringBuilder columnGroupBuilder = new StringBuilder ( ) ;
dataTable . Columns . Add ( tempTable . Columns [ 0 ] . ColumnName , tempTable . Columns [ 0 ] . DataType ) ;
for ( int k = 0 ; k < tempTable . Rows . Count ; k + + )
{
DataRow newRow = dataTable . NewRow ( ) ;
newRow [ tempTable . Columns [ 0 ] . ColumnName ] = tempTable . Rows [ k ] [ tempTable . Columns [ 0 ] . ColumnName ] . ToString ( ) ;
dataTable . Rows . Add ( newRow ) ;
}
while ( gridEntity . Columns . Count > i )
{
foreach ( GridColumnEntity column in gridEntity . Columns )
{
if ( column . Index = = i )
{
for ( int j = 1 ; j < tempTable . Columns . Count ; j + + )
{
if ( tempTable . Columns [ j ] . ColumnName . Equals ( column . Name ) )
{
dataTable . Columns . Add ( tempTable . Columns [ j ] . ColumnName , tempTable . Columns [ j ] . DataType ) ;
for ( int k = 0 ; k < tempTable . Rows . Count ; k + + )
{
dataTable . Rows [ k ] [ tempTable . Columns [ j ] . ColumnName ] = tempTable . Rows [ k ] [ tempTable . Columns [ j ] . ColumnName ] . ToString ( ) ;
}
break ;
}
}
break ;
}
}
i + + ;
}
}
else
{
return tempTable ;
}
}
else
{
return tempTable ;
}
return dataTable ;
}
private XmlDocument GetUserSettingXml ( GridEntity gridEntity )
{
XmlDocument xmlDoc = new XmlDocument ( ) ;
XmlElement root = xmlDoc . CreateElement ( "user-settings" ) ;
//xmlDoc.AppendChild(root);
XmlElement xGID = xmlDoc . CreateElement ( "GID" ) ;
xGID . InnerText = gridEntity . GID ;
root . AppendChild ( xGID ) ;
XmlElement xUserID = xmlDoc . CreateElement ( "userid" ) ;
xUserID . InnerText = gridEntity . UserID ;
root . AppendChild ( xUserID ) ;
XmlElement xCreateTime = xmlDoc . CreateElement ( "create-time" ) ;
xCreateTime . InnerText = gridEntity . CreateTime . ToString ( ) ;
root . AppendChild ( xCreateTime ) ;
XmlElement xColumns = xmlDoc . CreateElement ( "columns" ) ;
foreach ( GridColumnEntity column in gridEntity . Columns )
{
XmlElement xColumn = xmlDoc . CreateElement ( "column" ) ;
XmlElement nName = xmlDoc . CreateElement ( "name" ) ;
nName . InnerText = column . Name ;
xColumn . AppendChild ( nName ) ;
XmlElement nDescription = xmlDoc . CreateElement ( "description" ) ;
nDescription . InnerText = column . Description ;
xColumn . AppendChild ( nDescription ) ;
XmlElement nIndex = xmlDoc . CreateElement ( "index" ) ;
nIndex . InnerText = column . Index . ToString ( ) ;
xColumn . AppendChild ( nIndex ) ;
XmlElement nWidth = xmlDoc . CreateElement ( "width" ) ;
nWidth . InnerText = column . Width . ToString ( ) ;
xColumn . AppendChild ( nWidth ) ;
XmlElement nVisible = xmlDoc . CreateElement ( "visible" ) ;
nVisible . InnerText = column . VisibleState . ToString ( ) ;
xColumn . AppendChild ( nVisible ) ;
xColumns . AppendChild ( xColumn ) ;
}
root . AppendChild ( xColumns ) ;
XmlElement xGroupBy = xmlDoc . CreateElement ( "group-by" ) ;
xGroupBy . InnerText = gridEntity . GroupBy ;
root . AppendChild ( xGroupBy ) ;
XmlElement xPage = xmlDoc . CreateElement ( "page" ) ;
XmlElement nPageDefault = xmlDoc . CreateElement ( "page-default" ) ;
nPageDefault . InnerText = gridEntity . DefaultPrePageCount . ToString ( ) ;
xPage . AppendChild ( nPageDefault ) ;
XmlElement nPagePre = xmlDoc . CreateElement ( "page-pre" ) ;
nPagePre . InnerText = gridEntity . PagePreCount . ToString ( ) ;
xPage . AppendChild ( nPagePre ) ;
root . AppendChild ( xPage ) ;
xmlDoc . AppendChild ( root ) ;
return xmlDoc ;
}
}
}