private static void _addScheduledRulesGrid(CswNbtResources NbtResources, Collection <CswScheduleLogicDetail> LogicDetails, CswNbtScheduledRulesReturn Ret) { if (null != LogicDetails && LogicDetails.Count > 0 && null != Ret && null != Ret.Data) { DataTable GridTable = new DataTable("scheduledrulestable"); GridTable.Columns.Add(CswEnumScheduleLogicDetailColumnNames.RuleName, typeof(string)); GridTable.Columns.Add(CswEnumScheduleLogicDetailColumnNames.Recurrance, typeof(string)); GridTable.Columns.Add(CswEnumScheduleLogicDetailColumnNames.Interval, typeof(Int32)); GridTable.Columns.Add(CswEnumScheduleLogicDetailColumnNames.ReprobateThreshold, typeof(Int32)); GridTable.Columns.Add(CswEnumScheduleLogicDetailColumnNames.MaxRunTimeMs, typeof(Int32)); GridTable.Columns.Add(CswEnumScheduleLogicDetailColumnNames.Reprobate, typeof(bool)); GridTable.Columns.Add(CswEnumScheduleLogicDetailColumnNames.RunStartTime, typeof(DateTime)); GridTable.Columns.Add(CswEnumScheduleLogicDetailColumnNames.RunEndTime, typeof(DateTime)); GridTable.Columns.Add(CswEnumScheduleLogicDetailColumnNames.TotalRogueCount, typeof(Int32)); GridTable.Columns.Add(CswEnumScheduleLogicDetailColumnNames.FailedCount, typeof(Int32)); GridTable.Columns.Add(CswEnumScheduleLogicDetailColumnNames.ThreadId, typeof(Int32)); GridTable.Columns.Add(CswEnumScheduleLogicDetailColumnNames.StatusMessage, typeof(string)); GridTable.Columns.Add(CswEnumScheduleLogicDetailColumnNames.Disabled, typeof(bool)); GridTable.Columns.Add(CswEnumScheduleLogicDetailColumnNames.HasChanged, typeof(bool)); GridTable.Columns.Add(CswEnumScheduleLogicDetailColumnNames.Priority, typeof(Int32)); GridTable.Columns.Add(CswEnumScheduleLogicDetailColumnNames.LoadCount, typeof(Int32)); GridTable.Columns.Add(CswEnumScheduleLogicDetailColumnNames.LastLoadCheck, typeof(DateTime)); foreach (CswScheduleLogicDetail LogicDetail in LogicDetails) { if (null != LogicDetail) { DataRow Row = GridTable.NewRow(); Row[CswEnumScheduleLogicDetailColumnNames.RuleName] = LogicDetail.RuleName; Row[CswEnumScheduleLogicDetailColumnNames.Recurrance] = LogicDetail.Recurrence; Row[CswEnumScheduleLogicDetailColumnNames.Interval] = LogicDetail.Interval; Row[CswEnumScheduleLogicDetailColumnNames.ReprobateThreshold] = LogicDetail.ReprobateThreshold; Row[CswEnumScheduleLogicDetailColumnNames.MaxRunTimeMs] = LogicDetail.MaxRunTimeMs; Row[CswEnumScheduleLogicDetailColumnNames.Reprobate] = LogicDetail.Reprobate; Row[CswEnumScheduleLogicDetailColumnNames.RunStartTime] = LogicDetail.RunStartTime; Row[CswEnumScheduleLogicDetailColumnNames.RunEndTime] = LogicDetail.RunEndTime; Row[CswEnumScheduleLogicDetailColumnNames.TotalRogueCount] = LogicDetail.TotalRogueCount; Row[CswEnumScheduleLogicDetailColumnNames.FailedCount] = LogicDetail.FailedCount; Row[CswEnumScheduleLogicDetailColumnNames.ThreadId] = LogicDetail.ThreadId; Row[CswEnumScheduleLogicDetailColumnNames.StatusMessage] = LogicDetail.StatusMessage; Row[CswEnumScheduleLogicDetailColumnNames.Priority] = LogicDetail.Priority; Row[CswEnumScheduleLogicDetailColumnNames.LoadCount] = LogicDetail.LoadCount; Row[CswEnumScheduleLogicDetailColumnNames.LastLoadCheck] = LogicDetail.LastLoadCheck; Row[CswEnumScheduleLogicDetailColumnNames.Disabled] = LogicDetail.Disabled; Row[CswEnumScheduleLogicDetailColumnNames.HasChanged] = false; GridTable.Rows.Add(Row); } } CswNbtGrid gd = new CswNbtGrid(NbtResources); Ret.Data.Grid = gd.DataTableToGrid(GridTable); } }
public static void getDemoDataGrid(ICswResources CswResources, CswNbtDemoDataReturn Return, object Request) { CswNbtResources CswNbtResources = (CswNbtResources)CswResources; //Build table infrastructure DataTable GridTable = new DataTable("demodatatable"); GridTable.Columns.Add(CswNbtDemoDataReturn.ColumnNames.NodeId, typeof(Int32)); GridTable.Columns.Add(CswNbtDemoDataReturn.ColumnNames.Name, typeof(string)); GridTable.Columns.Add(CswNbtDemoDataReturn.ColumnNames.Type, typeof(string)); GridTable.Columns.Add(CswNbtDemoDataReturn.ColumnNames.IsUsedBy, typeof(int)); GridTable.Columns.Add(CswNbtDemoDataReturn.ColumnNames.IsRequiredBy, typeof(int)); GridTable.Columns.Add(CswNbtDemoDataReturn.ColumnNames.ConvertToNonDemo, typeof(Boolean)); GridTable.Columns.Add(CswNbtDemoDataReturn.ColumnNames.Delete, typeof(Boolean)); GridTable.Columns.Add(CswNbtDemoDataReturn.ColumnNames.MenuOptions, typeof(string)); _ColumnTypeOverrides.Clear(); _ColumnTypeOverrides.Add(CswNbtDemoDataReturn.ColumnNames.IsUsedBy.ToString(), typeof(sbyte)); _ColumnTypeOverrides.Add(CswNbtDemoDataReturn.ColumnNames.IsRequiredBy.ToString(), typeof(sbyte)); //***************************** //Populate views string ViewQuery = @"select v.viewname, v.nodeviewid from node_views v where isdemo = '1' and visibility <> 'Property' and visibility <> 'Hidden' order by lower(viewname)"; CswArbitrarySelect ArbitraryViewsSelect = CswNbtResources.makeCswArbitrarySelect("select_demo_nodes", ViewQuery); DataTable DemoViewsTable = ArbitraryViewsSelect.getTable(); foreach (DataRow CurrentDemoViewRow in DemoViewsTable.Rows) { DataRow NewGridRowOfDemoViews = GridTable.NewRow(); GridTable.Rows.Add(NewGridRowOfDemoViews); NewGridRowOfDemoViews[CswNbtDemoDataReturn.ColumnNames.NodeId] = CurrentDemoViewRow["nodeviewid"].ToString(); NewGridRowOfDemoViews[CswNbtDemoDataReturn.ColumnNames.Name] = CurrentDemoViewRow["viewname"].ToString(); NewGridRowOfDemoViews[CswNbtDemoDataReturn.ColumnNames.Type] = "View"; NewGridRowOfDemoViews[CswNbtDemoDataReturn.ColumnNames.IsUsedBy] = 0; NewGridRowOfDemoViews[CswNbtDemoDataReturn.ColumnNames.IsRequiredBy] = 0; } //iterate demo views rows //***************************** //Populate views string NodesQuery = @"select n." + CswNbtDemoDataReturn.ColumnNames.NodeId + @",n.nodename,t.nodetypename, t.enabled from nodes n join nodetypes t on (n.nodetypeid=t.nodetypeid ) where n.isdemo = '1' order by lower( n.nodename ), lower( t.nodetypename )"; CswArbitrarySelect ArbitraryNodesSelect = CswNbtResources.makeCswArbitrarySelect("select_demo_nodes", NodesQuery); DataTable DemoNodesTable = ArbitraryNodesSelect.getTable(); foreach (DataRow CurrentDemoNodeRow in DemoNodesTable.Rows) { bool NodeEnabled = CswConvert.ToBoolean(CurrentDemoNodeRow["enabled"].ToString()); String DisabledLabel = NodeEnabled ? "" : "(Disabled) "; DataRow NewGridRowOfNodes = GridTable.NewRow(); GridTable.Rows.Add(NewGridRowOfNodes); NewGridRowOfNodes[CswNbtDemoDataReturn.ColumnNames.NodeId] = CurrentDemoNodeRow["nodeid"].ToString(); NewGridRowOfNodes[CswNbtDemoDataReturn.ColumnNames.Name] = CurrentDemoNodeRow["nodename"].ToString(); NewGridRowOfNodes[CswNbtDemoDataReturn.ColumnNames.Type] = DisabledLabel + CurrentDemoNodeRow["nodetypename"].ToString(); CswDelimitedString UsedByNodeIds = new CswDelimitedString(','); Int32 UsedByCount = 0; CswDelimitedString RequiredByNodeIds = new CswDelimitedString(','); Int32 RequiredByCount = 0; string nodeid = CurrentDemoNodeRow["nodeid"].ToString(); string node_used_by_query = @"select n." + CswNbtDemoDataReturn.ColumnNames.NodeId + @", n.nodename,t.nodetypename,n.isdemo, p.isrequired from jct_nodes_props j join nodetype_props p on (j.nodetypepropid=p.nodetypepropid) join field_types f on ( p.fieldtypeid = f.fieldtypeid ) join nodes n on (j.nodeid=n.nodeid) join nodetypes t on (n.nodetypeid=t.nodetypeid) where ( f.fieldtype='Relationship' or f.fieldtype='Location' ) and j.field1_fk='" + nodeid + "'"; CswArbitrarySelect ArbitraryUsedBySelect = CswNbtResources.makeCswArbitrarySelect("select_nodesusedby_nodeid_" + nodeid, node_used_by_query); DataTable NodesUsedByTable = ArbitraryUsedBySelect.getTable(); foreach (DataRow CurrentUsedByRow in NodesUsedByTable.Rows) { string CurrentNodeId = CurrentUsedByRow["nodeid"].ToString(); if (true == CswConvert.ToBoolean(CurrentUsedByRow["isrequired"].ToString())) { RequiredByNodeIds.Add(CurrentNodeId); RequiredByCount++; } else { UsedByNodeIds.Add(CurrentNodeId); UsedByCount++; } //if-else it's required } //iterate nodes used by rows NewGridRowOfNodes[CswNbtDemoDataReturn.ColumnNames.MenuOptions] = "{ \"requiredby\" : [" + RequiredByNodeIds.ToString() + "],\"usedby\" :[" + UsedByNodeIds.ToString() + "], \"nodename\": \" " + CurrentDemoNodeRow["nodename"].ToString() + "\" }"; NewGridRowOfNodes[CswNbtDemoDataReturn.ColumnNames.IsUsedBy] = UsedByCount; NewGridRowOfNodes[CswNbtDemoDataReturn.ColumnNames.IsRequiredBy] = RequiredByCount; } //iterate node rows CswNbtGrid Grid = new CswNbtGrid(CswNbtResources); Return.Data.Grid = Grid.DataTableToGrid(GridTable, IncludeEditFields: false, ColumnTypeOverrides: _ColumnTypeOverrides); } //getDemoDataGrid()
} //getDemoDataGrid() public static void getDemoDataNodesAsGrid(ICswResources CswResources, CswNbtDemoDataReturn Return, CswNbtDemoDataRequests.CswDemoNodesGridRequest Request) { CswNbtResources CswNbtResources = (CswNbtResources)CswResources; //Build table infrastructure DataTable GridTable = new DataTable("depdendentnodestable"); GridTable.Columns.Add(CswNbtDemoDataReturn.ColumnNames.NodeId, typeof(Int32)); GridTable.Columns.Add(CswNbtDemoDataReturn.ColumnNames.Name, typeof(string)); GridTable.Columns.Add(CswNbtDemoDataReturn.ColumnNames.Type, typeof(string)); GridTable.Columns.Add(CswNbtDemoDataReturn.ColumnNames.IsDemo, typeof(string)); // GridTable.Columns.Add( CswNbtDemoDataReturn.ColumnNames.Action, typeof( sbyte ) ); GridTable.Columns.Add(CswNbtDemoDataReturn.ColumnNames.MenuOptions, typeof(string)); string DependentNodesQuery = "select n.nodeid, t.nodetypeid, n.nodename as \"name\" ,n.isdemo \"Is Demo\", t.nodetypename as \"type\" "; DependentNodesQuery += "from nodes n "; DependentNodesQuery += "join nodetypes t on (n.nodetypeid=t.nodetypeid) "; //We have to cope with oracle's limit of 1000 on lists //as per case 29811 DependentNodesQuery += " where "; List <string> AllNodeIds = Request.NodeIds; int NumberoFInClauses = (AllNodeIds.Count / 1000) + 1; //we _only_ want the whole-number result here for (int idx = 0; idx < NumberoFInClauses; idx++) { if (idx > 0) { DependentNodesQuery += " or "; } List <string> CurrentList = null; if (AllNodeIds.Count > 1000) { CurrentList = AllNodeIds.GetRange(0, 1000); AllNodeIds.RemoveRange(0, 1000); } else { CurrentList = AllNodeIds; } CswDelimitedString DepdendentNodeIds = new CswDelimitedString(','); DepdendentNodeIds.FromArray(CurrentList.ToArray()); DependentNodesQuery += " n.nodeid in (" + DepdendentNodeIds.ToString() + ") "; } DependentNodesQuery += "order by lower(n.nodename), lower(t.nodetypename)"; CswArbitrarySelect DependentNodesSelect = CswNbtResources.makeCswArbitrarySelect("select_depdendent_nodes", DependentNodesQuery); DataTable DepdendentNodesTableTable = DependentNodesSelect.getTable(); foreach (DataRow CurrentDependentNodeRow in DepdendentNodesTableTable.Rows) { DataRow NewGridRowOfDependentNodes = GridTable.NewRow(); GridTable.Rows.Add(NewGridRowOfDependentNodes); NewGridRowOfDependentNodes[CswNbtDemoDataReturn.ColumnNames.NodeId] = CurrentDependentNodeRow[CswNbtDemoDataReturn.ColumnNames.NodeId]; NewGridRowOfDependentNodes[CswNbtDemoDataReturn.ColumnNames.Name] = CurrentDependentNodeRow[CswNbtDemoDataReturn.ColumnNames.Name]; NewGridRowOfDependentNodes[CswNbtDemoDataReturn.ColumnNames.Type] = CurrentDependentNodeRow[CswNbtDemoDataReturn.ColumnNames.Type]; NewGridRowOfDependentNodes[CswNbtDemoDataReturn.ColumnNames.IsDemo] = ("1" == CurrentDependentNodeRow[CswNbtDemoDataReturn.ColumnNames.IsDemo].ToString()) ? "yes" : "no"; CswPrimaryKey cswPrimaryKey = new CswPrimaryKey(); cswPrimaryKey.FromString("nodes_" + CurrentDependentNodeRow[CswNbtDemoDataReturn.ColumnNames.NodeId].ToString()); CswNbtNodeKey CswNbtNodeKey = new CswNbtNodeKey(); CswNbtNodeKey.NodeId = cswPrimaryKey; CswNbtNodeKey.NodeTypeId = CswConvert.ToInt32(CurrentDependentNodeRow["nodetypeid"]); string menu_options = "{ "; menu_options += "\"nodeid\" : \"nodes_" + CurrentDependentNodeRow[CswNbtDemoDataReturn.ColumnNames.NodeId].ToString() + "\","; menu_options += "\"nodename\" : \" " + CurrentDependentNodeRow[CswNbtDemoDataReturn.ColumnNames.Name].ToString() + "\","; menu_options += "\"nodekey\" : \" " + CswNbtNodeKey.ToString() + "\""; menu_options += " }"; NewGridRowOfDependentNodes[CswNbtDemoDataReturn.ColumnNames.MenuOptions] = menu_options; }//iterate result rows CswNbtGrid Grid = new CswNbtGrid(CswNbtResources); Return.Data.Grid = Grid.DataTableToGrid(GridTable, IncludeEditFields: false); }//getDemoDataNodesAsGrid()