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 runReport( ICswResources CswResources, CswNbtWebServiceReport.ReportReturn Return, CswNbtWebServiceReport.ReportData reportParams )
        {
            JObject ret = new JObject();
            CswNbtResources NbtResources = (CswNbtResources) CswResources;

            DataTable rptDataTbl = _getReportTable( CswResources, reportParams );

            CswNbtGrid cg = new CswNbtGrid( NbtResources );
            ret = cg.DataTableToJSON( rptDataTbl );
            reportParams.gridJSON = ret.ToString();
            Return.Data = reportParams;
        }
Example #3
0
        public JObject getAuditHistoryGrid(CswNbtNode Node, bool JustDateColumn)
        {
            JObject ret = new JObject();

            if (Node != null)
            {
                string SQL = @"select ja.recordcreated as ChangeDate ";
                if (!JustDateColumn)
                {
                    SQL += @", x.transactionusername as Username,
                               x.auditeventname as Context,
                               np.propname as Propname,
                               ja.gestaltsearch as Value,
                               x.audittransactionid as AuditId,
                               ft.fieldtype as FieldType ";
                }
                SQL += @" from jct_nodes_props_audit ja
                          join audit_transactions x on ja.audittransactionid = x.audittransactionid
                          join TABLE(" + CswNbtAuditTableAbbreviation.getAuditLookupFunctionNameForRealTable("nodetype_props") +
                       @"(ja.recordcreated)) np on (np.nodetypepropid = ja.nodetypepropid)
                          join field_types ft on ft.fieldtypeid = np.fieldtypeid
                         where ja.nodeid = :nodeid
                           and x.transactionusername not in (:sysusernames)
                          order by AuditId desc";

                CswCommaDelimitedString sysUserNames = new CswCommaDelimitedString(0, "'");
                foreach (CswEnumSystemUserNames sysUserName in CswEnumSystemUserNames.getValues())
                {
                    sysUserNames.Add(sysUserName.ToString());
                }

                CswArbitrarySelect HistorySelect = _CswNbtResources.makeCswArbitrarySelect("CswNbtWebServiceAuditing_getAuditHistory_select", SQL);
                HistorySelect.addParameter("nodeid", Node.NodeId.PrimaryKey.ToString());
                HistorySelect.addParameter("sysusernames", sysUserNames.ToString());

                DataTable HistoryTable = HistorySelect.getTable();

                //for the audit grid we want to group by audittransactionid, but show the changedate
                //also, we mask the password value column and not show the encrypted password
                string mutatingRowsAuditId = "";
                string changeToDate        = "";
                foreach (DataRow row in HistoryTable.Rows)
                {
                    string currentAuditId = row["AuditId"].ToString();
                    if (currentAuditId != mutatingRowsAuditId)  //we're onto a new group
                    {
                        mutatingRowsAuditId = currentAuditId;
                        changeToDate        = row["ChangeDate"].ToString();
                    }
                    row["ChangeDate"] = changeToDate;

                    if (row["FieldType"].ToString().Equals("Password"))
                    {
                        row["Value"] = "[password changed]";
                    }
                }
                HistoryTable.Columns.Remove("FieldType");
                HistoryTable.Columns.Remove("AuditId");

                CswNbtGrid g = new CswNbtGrid(_CswNbtResources);
                ret = g.DataTableToJSON(HistoryTable, GroupByCol: "ChangeDate", GroupByColType: CswEnumExtJsXType.datecolumn);
            }
            return(ret);
        } // _getAuditHistoryGrid()
Example #4
0
        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()
Example #5
0
        } //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()
Example #6
0
        public CswNbtWebServiceGrid(CswNbtResources CswNbtResources, CswNbtView View, bool ForReport, CswNbtNodeKey ParentNodeKey = null)
        {
            _CswNbtResources = CswNbtResources;
            _View            = View;
            _ForReport       = ForReport;

            if (_View.ViewMode != CswEnumNbtViewRenderingMode.Grid)
            {
                throw new CswDniException(CswEnumErrorType.Error, "Cannot create a grid using a view type of " + _View.ViewMode, "Cannot create a grid view if the view is not a grid.");
            }

            _ParentNodeKey = ParentNodeKey;

            Collection <CswNbtViewRelationship> FirstLevelRelationships = new Collection <CswNbtViewRelationship>();

            if (null != _ParentNodeKey && _View.Visibility == CswEnumNbtViewVisibility.Property)
            {
                foreach (CswNbtViewRelationship Relationship in _View.Root.ChildRelationships.SelectMany(NodeRelationship => NodeRelationship.ChildRelationships))
                {
                    FirstLevelRelationships.Add(Relationship);
                }
            }
            else
            {
                FirstLevelRelationships = _View.Root.ChildRelationships;
            }
            // Case 21778
            // Maybe do this in Permit someday; however, the meaning of Edit and Delete is very specific in this context:
            // only evaluating visibility of the option to edit or delete root nodetypes of a view
            foreach (CswNbtViewRelationship Relationship in FirstLevelRelationships)
            {
                Collection <CswNbtMetaDataNodeType> FirstLevelNodeTypes = new Collection <CswNbtMetaDataNodeType>();

                if (Relationship.SecondId != Int32.MinValue)
                {
                    if (Relationship.SecondType == CswEnumNbtViewRelatedIdType.PropertySetId)
                    {
                        foreach (CswNbtMetaDataObjectClass SecondOc in _CswNbtResources.MetaData.getObjectClassesByPropertySetId(Relationship.SecondId))
                        {
                            if (null != SecondOc)
                            {
                                foreach (CswNbtMetaDataNodeType NT in SecondOc.getNodeTypes())
                                {
                                    FirstLevelNodeTypes.Add(NT);
                                }
                            }
                        }
                    }
                    else if (Relationship.SecondType == CswEnumNbtViewRelatedIdType.ObjectClassId)
                    {
                        CswNbtMetaDataObjectClass SecondOc = _CswNbtResources.MetaData.getObjectClass(Relationship.SecondId);
                        if (null != SecondOc)
                        {
                            foreach (CswNbtMetaDataNodeType NT in SecondOc.getNodeTypes())
                            {
                                FirstLevelNodeTypes.Add(NT);
                            }
                        }
                    }
                    else if (Relationship.SecondType == CswEnumNbtViewRelatedIdType.NodeTypeId)
                    {
                        CswNbtMetaDataNodeType SecondNt = _CswNbtResources.MetaData.getNodeType(Relationship.SecondId);
                        if (null != SecondNt)
                        {
                            FirstLevelNodeTypes.Add(SecondNt);
                        }
                    }
                } // if( Relationship.SecondId != Int32.MinValue )

                foreach (CswNbtMetaDataNodeType NodeType in FirstLevelNodeTypes)
                {
                    _NodeTypePermission Permission = new _NodeTypePermission(NodeType, _CswNbtResources);
                    _ActionEnabled = false == _ForReport &&
                                     (_ActionEnabled || Permission.CanView || Permission.CanDelete || Permission.CanDelete);
                    if (false == _Permissions.ContainsKey(NodeType.FirstVersionNodeTypeId))
                    {
                        _Permissions.Add(NodeType.FirstVersionNodeTypeId, Permission);
                    }
                }
            }

            _CswNbtGrid  = new CswNbtGrid(_CswNbtResources);
            _PropsInGrid = new Collection <CswViewBuilderProp>();
            _getGridProperties(_View.Root.ChildRelationships, _PropsInGrid);
        } //ctor