public override void update() { CswNbtMetaDataPropertySet PhrasePS = _CswNbtSchemaModTrnsctn.MetaData.getPropertySet( CswEnumNbtPropertySetName.PhraseSet ); if( null == PhrasePS ) { PhrasePS = _CswNbtSchemaModTrnsctn.MetaData.makeNewPropertySet( CswEnumNbtPropertySetName.PhraseSet, "warning.png" ); //Update the DSD and GHS Phrases CswTableUpdate TableUpdate = _CswNbtSchemaModTrnsctn.makeCswTableUpdate( "updatePhrasePropSets", "jct_propertyset_objectclass" ); DataTable ObjClassTbl = TableUpdate.getEmptyTable(); DataRow GHSRow = ObjClassTbl.NewRow(); DataRow DSDRow = ObjClassTbl.NewRow(); GHSRow["propertysetid"] = PhrasePS.PropertySetId; GHSRow["objectclassid"] = _CswNbtSchemaModTrnsctn.MetaData.getObjectClassId( CswEnumNbtObjectClass.GHSPhraseClass ); DSDRow["propertysetid"] = PhrasePS.PropertySetId; DSDRow["objectclassid"] = _CswNbtSchemaModTrnsctn.MetaData.getObjectClassId( CswEnumNbtObjectClass.DSDPhraseClass ); ObjClassTbl.Rows.Add( GHSRow ); ObjClassTbl.Rows.Add( DSDRow ); TableUpdate.update( ObjClassTbl ); } } // update()
public override void update() { // Insert license into licenses table CswTableUpdate LicenseUpdate = _CswNbtSchemaModTrnsctn.makeCswTableUpdate( "30086_license_update", "license" ); DataTable LicenseTable = LicenseUpdate.getEmptyTable(); DataRow lRow = LicenseTable.NewRow(); lRow["activedate"] = DateTime.Now; lRow["licensetxt"] = @"These ""Terms of Use"" set forth the terms and conditions that apply to your use of ChemSWLive (the ""Web Site""). By using the Web Site (other than to read this page for the first time), you agree to comply with all of the Terms of Use set forth herein. The right to use the Web Site is personal to you and is not transferable to any other person or entity. Copyrights and Trademarks A. All materials contained on the Web Site are Copyright 2006-2013, ChemSW, Inc. All rights reserved. B. No person is authorized to use, copy or distribute any portion the Web Site including related graphics. C. ChemSWLive and other trademarks and/or service marks (including logos and designs) found on the Web Site are trademarks/service marks that identify ChemSW, Inc. and the goods and/or services provided by ChemSW, Inc.. Such marks may not be used under any circumstances without the prior written authorization of ChemSW, Inc. Links to Third-Party Web Site ChemSW, Inc. may provide hyperlinks to third-party web sites as a convenience to users of the Web Site. ChemSW, Inc. does not control third-party web sites and is not responsible for the contents of any linked-to, third-party web sites or any hyperlink in a linked-to web site. ChemSW, Inc. does not endorse, recommend or approve any third-party web site hyperlinked from the Web Site. ChemSW, Inc. will have no liability to any entity for the content or use of the content available through such hyperlink. No Representations or Warranties; Limitations on Liability The information and materials on the Web Site could include technical inaccuracies or typographical errors. Changes are periodically made to the information contained herein. ChemSW, Inc. MAKES NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO ANY INFORMATION, MATERIALS OR GRAPHICS ON THE WEB SITE, ALL OF WHICH IS PROVIDED ON A STRICTLY ""AS IS"" BASIS, WITHOUT WARRANTY OF ANY KIND AND HEREBY EXPRESSLY DISCLAIMS ALL WARRANTIES WITH REGARD TO ANY INFORMATION, MATERIALS OR GRAPHICS ON THE WEB SITE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. UNDER NO CIRCUMSTANCES SHALL THE SITE OWNER OR PUBLISHER BE LIABLE UNDER ANY THEORY OF RECOVERY, AT LAW OR IN EQUITY, FOR ANY DAMAGES, INCLUDING WITHOUT LIMITATION, SPECIAL, DIRECT, INCIDENTAL, CONSEQUENTIAL OR PUNITIVE DAMAGES (INCLUDING, BUT NOT LIMITED TO LOSS OF USE OR LOST PROFITS), ARISING OUT OF OR IN ANY MANNER CONNECTED WITH THE USE OF INFORMATION OR SERVICES, OR THE FAILURE TO PROVIDE INFORMATION OR SERVICES, FROM THE WEB SITE. Changes to These Terms of Use ChemSW, Inc. reserves the right to change these Terms of Use at any time by posting new Terms of Use at this location. You can send e-mail to ChemSW, Inc. with any questions relating to these Terms of Use at [email protected]."; LicenseTable.Rows.Add( lRow ); LicenseUpdate.update( LicenseTable ); }
} // saveSessionData(Search) /// <summary> /// Save a view to the session data collection. Sets the SessionViewId on the view. /// </summary> public CswNbtSessionDataId saveSessionData( CswNbtView View, bool IncludeInQuickLaunch, bool KeepInQuickLaunch = false, bool UpdateCache = false ) { CswTableUpdate SessionViewsUpdate = _CswNbtResources.makeCswTableUpdate( "saveSessionView_update", SessionDataTableName ); DataTable SessionViewTable; if( View.SessionViewId != null && View.SessionViewId.isSet() ) //Get existing session view by SessionViewId SessionViewTable = SessionViewsUpdate.getTable( SessionDataColumn_PrimaryKey, View.SessionViewId.get(), "where sessionid = '" + SessionId + "'", false ); else if( View.ViewId != null && View.ViewId.isSet() ) //Get existing session view by ViewId SessionViewTable = SessionViewsUpdate.getTable( SessionDataColumn_ViewId, View.ViewId.get(), "where sessionid = '" + SessionId + "'", false ); else //Save new Session View SessionViewTable = SessionViewsUpdate.getEmptyTable(); if( SessionViewTable.Rows.Count == 0 ) { UpdateCache = true; } DataRow SessionViewRow = _getSessionViewRow( SessionViewTable, View.ViewName, CswEnumNbtSessionDataType.View, IncludeInQuickLaunch, KeepInQuickLaunch ); if( UpdateCache && false == ( _CswNbtResources.CurrentNbtUser is CswNbtSystemUser ) )//Overwrite { SessionViewRow[SessionDataColumn_ViewId] = CswConvert.ToDbVal( View.ViewId.get() ); SessionViewRow[SessionDataColumn_ViewMode] = View.ViewMode.ToString(); SessionViewRow[SessionDataColumn_ViewXml] = View.ToString(); SessionViewsUpdate.update( SessionViewTable ); } return new CswNbtSessionDataId( CswConvert.ToInt32( SessionViewRow[SessionDataColumn_PrimaryKey] ) ); } // saveSessionData(View)
//public void clear() //{ //}//clear() public void makeNewNodeEntry(CswNbtNode Node, bool SyncProps) { // Don't sync for temp nodes if (false == Node.IsTemp) { string TableName = Node.getNodeType().TableName; string PkColumnName = _CswNbtResources.getPrimeKeyColName(TableName); CswTableUpdate CswTableUpdate = _CswNbtResources.makeCswTableUpdate("CswNbtNodeWriterRelationalDb.makeNewNodeEntry_update", TableName); DataTable NewNodeTable = CswTableUpdate.getEmptyTable(); DataRow NewNodeRow = NewNodeTable.NewRow(); NewNodeTable.Rows.Add(NewNodeRow); Node.RelationalId = new CswPrimaryKey(TableName, CswConvert.ToInt32(NewNodeTable.Rows[0][PkColumnName])); CswTableUpdate.update(NewNodeTable); if (SyncProps) { // It is possible for the node to have existed as a temp node, and therefore already have property values. // Now that the node has a relationalid, this will sync the current property values to the new relational row Node.Properties.update(Node, IsCopy: false, OverrideUniqueValidation: false, Creating: false, AllowAuditing: true, SkipEvents: false); } } }
}//createBiologicalOC() private void _linkBiologicalOCtoPS() { //Update the NodeTypeProps' OCPs to point to Biological's OCPs - if NonChemical does not have an OCP with the given NTP name, the NTP is deleted. CswNbtMetaDataObjectClass BiologicalOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.BiologicalClass ); // Populate jct_propertyset_objectclass CswTableUpdate JctOCUpdate = _CswNbtSchemaModTrnsctn.makeCswTableUpdate( "28160_jct_update", "jct_propertyset_objectclass" ); DataTable JctOCTable = JctOCUpdate.getEmptyTable(); DataRow NewRow = JctOCTable.NewRow(); NewRow["objectclassid"] = BiologicalOC.ObjectClassId; NewRow["propertysetid"] = CswConvert.ToDbVal( _CswNbtSchemaModTrnsctn.MetaData.getPropertySetId( CswEnumNbtPropertySetName.MaterialSet ) ); JctOCTable.Rows.Add( NewRow ); JctOCUpdate.update( JctOCTable ); // Populate jct_propertyset_objectclassprop CswTableUpdate JctOCPUpdate = _CswNbtSchemaModTrnsctn.makeCswTableUpdate( "28160_jct2_update", "jct_propertyset_ocprop" ); DataTable JctOCPTable = JctOCPUpdate.getEmptyTable(); foreach( CswNbtMetaDataObjectClassProp ObjectClassProp in BiologicalOC.getObjectClassProps() ) { string[] PropsToAdd = new string[] { CswNbtObjClassBiological.PropertyName.TradeName, CswNbtObjClassBiological.PropertyName.LegacyMaterialId, CswNbtObjClassBiological.PropertyName.ApprovedForReceiving, CswNbtObjClassBiological.PropertyName.C3ProductId, CswNbtObjClassBiological.PropertyName.ContainerExpirationLocked, CswNbtObjClassBiological.PropertyName.MaterialId, CswNbtObjClassBiological.PropertyName.Supplier, CswNbtObjClassBiological.PropertyName.PartNumber, CswNbtObjClassBiological.PropertyName.Receive, CswNbtObjClassBiological.PropertyName.Request, CswNbtObjClassBiological.PropertyName.IsConstituent, CswNbtObjClassBiological.PropertyName.Documents, CswNbtObjClassBiological.PropertyName.Synonyms }; if( PropsToAdd.Contains( ObjectClassProp.PropName ) ) { NewRow = JctOCPTable.NewRow(); NewRow["objectclasspropid"] = ObjectClassProp.PropId; NewRow["propertysetid"] = CswConvert.ToDbVal( _CswNbtSchemaModTrnsctn.MetaData.getPropertySetId( CswEnumNbtPropertySetName.MaterialSet ) ); JctOCPTable.Rows.Add( NewRow ); }// if the prop is a PSP, insert a jct record } // foreach property in the biological class JctOCPUpdate.update( JctOCPTable ); }//linkBiologicalOCtoPS
public override void update() { CswTableUpdate JctPSOCPUpdate = _CswNbtSchemaModTrnsctn.makeCswTableUpdate( "29499_jctpsocp_update", "jct_propertyset_ocprop" ); DataTable JctPSOCPTable = JctPSOCPUpdate.getEmptyTable(); CswNbtMetaDataPropertySet DocumentPS = _CswNbtSchemaModTrnsctn.MetaData.getPropertySet( CswEnumNbtPropertySetName.DocumentSet ); foreach( CswNbtMetaDataObjectClass DocOC in DocumentPS.getObjectClasses() ) { _createProps( DocOC, JctPSOCPTable, DocumentPS.PropertySetId ); } JctPSOCPUpdate.update( JctPSOCPTable ); } // update()
public void isFavoriteTestReturnsTrue() { CswNbtNode TestNode = TestData.Nodes.createControlZoneNode(); Int32 UserId = 1; CswTableUpdate FavoritesUpdate = TestData.CswNbtResources.makeCswTableUpdate("favoritesUpdate", "favorites"); DataTable FavoritesTable = FavoritesUpdate.getEmptyTable(); DataRow FavoritesRow = FavoritesTable.NewRow(); FavoritesRow["userid"] = UserId; FavoritesRow["itemid"] = TestNode.NodeId.PrimaryKey; FavoritesTable.Rows.Add(FavoritesRow); FavoritesUpdate.update(FavoritesTable); Assert.IsTrue(TestNode.isFavorite(UserId)); }
public override void update() { CswNbtMetaDataObjectClass DesignNtpOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.DesignNodeTypePropClass ); foreach( CswNbtMetaDataNodeType DesignNtpNT in DesignNtpOC.getNodeTypes() ) { // Set existing values of hidden foreach( CswNbtObjClassDesignNodeTypeProp DesignNtpNode in DesignNtpNT.getNodes( false, true ) ) { DesignNtpNode.Hidden.Checked = CswConvert.ToTristate( DesignNtpNode.RelationalNodeTypeProp.Hidden ); DesignNtpNode.postChanges( false ); } // Fix layout CswNbtMetaDataNodeTypeProp HiddenNTP = DesignNtpNT.getNodeTypePropByObjectClassProp( CswNbtObjClassDesignNodeTypeProp.PropertyName.Hidden ); CswNbtMetaDataNodeTypeProp ReadOnlyNTP = DesignNtpNT.getNodeTypePropByObjectClassProp( CswNbtObjClassDesignNodeTypeProp.PropertyName.ReadOnly ); _CswNbtSchemaModTrnsctn.MetaData.NodeTypeLayout.updatePropLayout( CswEnumNbtLayoutType.Edit, HiddenNTP, ReadOnlyNTP, true ); } // Synchronize property with nodetype_props.hidden CswTableUpdate jctUpdate = _CswNbtSchemaModTrnsctn.makeCswTableUpdate( "51775_jctddntp_update", "jct_dd_ntp" ); DataTable jctTable = jctUpdate.getEmptyTable(); foreach( CswNbtMetaDataNodeType DesignNtpNT in DesignNtpOC.getNodeTypes() ) { _CswNbtSchemaModTrnsctn.CswDataDictionary.setCurrentColumn( "nodetype_props", "hidden" ); CswNbtMetaDataNodeTypeProp HiddenNTP = DesignNtpNT.getNodeTypePropByObjectClassProp( CswNbtObjClassDesignNodeTypeProp.PropertyName.Hidden ); DataRow NodeTypeNameRow = jctTable.NewRow(); NodeTypeNameRow["nodetypepropid"] = HiddenNTP.PropId; NodeTypeNameRow["datadictionaryid"] = _CswNbtSchemaModTrnsctn.CswDataDictionary.TableColId; if( null != HiddenNTP.getFieldTypeRule().SubFields.Default ) { NodeTypeNameRow["subfieldname"] = HiddenNTP.getFieldTypeRule().SubFields.Default.Name; } jctTable.Rows.Add( NodeTypeNameRow ); } jctUpdate.update( jctTable ); // make Request module require the Multi-Inventory-Group module _CswNbtSchemaModTrnsctn.execArbitraryPlatformNeutralSql( @"update modules set prereq = (select moduleid from modules where name = '" + CswEnumNbtModuleName.MultiInventoryGroup + @"') where name = '" + CswEnumNbtModuleName.Requesting + @"'" ); } // update()
public override void update() { CswTableUpdate LayoutTabUpdate = _CswNbtSchemaModTrnsctn.makeCswTableUpdate( "layout_tab_update", "layout_tab" ); DataTable LayoutTabTable = LayoutTabUpdate.getEmptyTable(); CswArbitrarySelect OldLayoutTabsSelect = _CswNbtSchemaModTrnsctn.makeCswArbitrarySelect( "layout_tab_update", @"select l.layouttype, t.tabname, t.taborder, l.nodetypeid, n.nodeid design_nodetype_nodeid, l.nodetypetabsetid, n3.nodeid design_nodetypetab_nodeid from nodetype_layout l left join nodetype_tabset t on l.nodetypetabsetid = t.nodetypetabsetid left join nodes n on n.relationalid = l.nodetypeid and n.relationaltable = 'nodetypes' left join nodes n3 on n3.relationalid = l.nodetypetabsetid and n3.relationaltable = 'nodetype_tabset' group by l.layouttype, t.tabname, t.taborder, l.nodetypeid, l.nodetypetabsetid, n.nodeid, n3.nodeid order by l.nodetypeid, l.layouttype" ); DataTable OldLayoutTabsTable = OldLayoutTabsSelect.getTable(); foreach( DataRow OldLayoutRow in OldLayoutTabsTable.Rows ) { DataRow LayoutTabRow = LayoutTabTable.NewRow(); LayoutTabRow["layout_type"] = OldLayoutRow["layouttype"].ToString().ToLower(); if( LayoutTabRow["layout_type"].ToString() == "table" ) { LayoutTabRow["layout_type"] = "search"; } LayoutTabRow["tab_type"] = "main"; if( OldLayoutRow["tabname"].ToString() == "Identity" ) { LayoutTabRow["tab_type"] = "identity"; } LayoutTabRow["tab_name"] = OldLayoutRow["tabname"]; LayoutTabRow["tab_order"] = OldLayoutRow["taborder"]; if( LayoutTabRow["tab_order"].ToString() == "" ) { LayoutTabRow["tab_order"] = 1; } LayoutTabRow["metadata_nodetypeid"] = OldLayoutRow["nodetypeid"]; LayoutTabRow["design_nodetype_nodeid"] = OldLayoutRow["design_nodetype_nodeid"]; LayoutTabRow["design_nodetypetab_nodeid"] = OldLayoutRow["design_nodetypetab_nodeid"]; LayoutTabTable.Rows.Add( LayoutTabRow ); } LayoutTabUpdate.update( LayoutTabTable ); } // update()
public override void update() { //Rename sched rule CswTableUpdate schedRulesTU = _CswNbtSchemaModTrnsctn.makeCswTableUpdate("RenameFingerprintRule", "scheduledrules"); DataTable schedRules = schedRulesTU.getTable("where rulename = 'MolFingerprints'"); if (schedRules.Rows.Count > 0) { schedRules.Rows[0]["rulename"] = CswEnumNbtScheduleRuleNames.MolData.ToString(); } schedRulesTU.update(schedRules); //Get all Mol NTP ids CswCommaDelimitedString molNTPs = new CswCommaDelimitedString(); foreach (CswNbtMetaDataNodeTypeProp molNTP in _CswNbtSchemaModTrnsctn.MetaData.getNodeTypeProps(CswEnumNbtFieldType.MOL)) { molNTPs.Add(molNTP.PropId.ToString()); } CswTableUpdate molDataUpdate = _CswNbtSchemaModTrnsctn.makeCswTableUpdate("moldataUpdate_52735", "mol_data"); DataTable molDataTbl = molDataUpdate.getEmptyTable(); CswTableUpdate molDataPropsTblUpdate = _CswNbtSchemaModTrnsctn.makeCswTableUpdate("molselect_52735", "jct_nodes_props"); DataTable propsWithMols = molDataPropsTblUpdate.getTable("where nodetypepropid in (" + molNTPs.ToString() + ") and clobdata is not null"); foreach (DataRow molPropRow in propsWithMols.Rows) { string molString = molPropRow["clobdata"].ToString(); int jctnodepropid = CswConvert.ToInt32(molPropRow["jctnodepropid"]); DataRow newMolDataTblRow = molDataTbl.NewRow(); newMolDataTblRow["jctnodepropid"] = jctnodepropid; newMolDataTblRow["originalmol"] = Encoding.UTF8.GetBytes(molString); newMolDataTblRow["contenttype"] = ".mol"; newMolDataTblRow["nodeid"] = molPropRow["nodeid"]; molDataTbl.Rows.Add(newMolDataTblRow); molPropRow["clobdata"] = string.Empty; molPropRow["field1"] = "1"; } molDataUpdate.update(molDataTbl); molDataPropsTblUpdate.update(propsWithMols); }
public override void update() { CswNbtMetaDataObjectClass BiologicalOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.BiologicalClass ); CswNbtMetaDataObjectClass SupplyOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.NonChemicalClass ); CswNbtMetaDataNodeType TimeUoM_OC = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( "Unit Time" ); CswTableUpdate JctPropSetOCP = _CswNbtSchemaModTrnsctn.makeCswTableUpdate( "52990_JCT_PS_OCP", "jct_propertyset_ocprop" ); DataTable JctTable = JctPropSetOCP.getEmptyTable(); foreach( CswNbtMetaDataObjectClass MaterialOC in new[] {BiologicalOC, SupplyOC} ) { CswNbtMetaDataObjectClassProp ExpireInterval = _CswNbtSchemaModTrnsctn.createObjectClassProp( MaterialOC, new CswNbtWcfMetaDataModel.ObjectClassProp { PropName = CswNbtPropertySetMaterial.PropertyName.ExpirationInterval, FieldType = CswEnumNbtFieldType.Quantity, IsFk = true, FkType = "NodeTypeId", FkValue = TimeUoM_OC.NodeTypeId } ); CswNbtMetaDataObjectClassProp OpenExpireInterval = _CswNbtSchemaModTrnsctn.createObjectClassProp( MaterialOC, new CswNbtWcfMetaDataModel.ObjectClassProp { PropName = CswNbtPropertySetMaterial.PropertyName.OpenExpireInterval, FieldType = CswEnumNbtFieldType.Quantity, IsFk = true, FkType = "NodeTypeId", FkValue = TimeUoM_OC.NodeTypeId } ); DataRow Row = JctTable.NewRow(); Row["propertysetid"] = MaterialOC.getPropertySet().PropertySetId; Row["objectclasspropid"] = ExpireInterval.ObjectClassPropId; JctTable.Rows.Add( Row ); Row = JctTable.NewRow(); Row["propertysetid"] = MaterialOC.getPropertySet().PropertySetId; Row["objectclasspropid"] = OpenExpireInterval.ObjectClassPropId; JctTable.Rows.Add( Row ); } JctPropSetOCP.update( JctTable ); } // update()
public override void update() { CswTableUpdate T2RangeCodesUpdate = _CswNbtSchemaModTrnsctn.makeCswTableUpdate( "t2_range_codes_update", "tier2_rangecodes" ); DataTable RangeCodesTable = T2RangeCodesUpdate.getEmptyTable(); _addRangeCode( RangeCodesTable, "01", 0, 99 ); _addRangeCode( RangeCodesTable, "02", 100, 499 ); _addRangeCode( RangeCodesTable, "03", 500, 999 ); _addRangeCode( RangeCodesTable, "04", 1000, 4999 ); _addRangeCode( RangeCodesTable, "05", 5000, 9999 ); _addRangeCode( RangeCodesTable, "06", 10000, 24999 ); _addRangeCode( RangeCodesTable, "07", 25000, 49999 ); _addRangeCode( RangeCodesTable, "08", 50000, 74999 ); _addRangeCode( RangeCodesTable, "09", 75000, 99999 ); _addRangeCode( RangeCodesTable, "10", 100000, 499999 ); _addRangeCode( RangeCodesTable, "11", 500000, 999999 ); _addRangeCode( RangeCodesTable, "12", 1000000, 9999999 ); _addRangeCode( RangeCodesTable, "13", 10000000, Int32.MaxValue - 1 ); T2RangeCodesUpdate.update( RangeCodesTable ); } // update()
} // saveSessionData(Action) /// <summary> /// Save a search to the session data collection. /// </summary> public CswNbtSessionDataId saveSessionData( CswNbtSearch Search, bool IncludeInQuickLaunch, bool KeepInQuickLaunch = false ) { CswTableUpdate SessionViewsUpdate = _CswNbtResources.makeCswTableUpdate( "saveSessionView_update", SessionDataTableName ); DataTable SessionViewTable = null; if( Search.SessionDataId != null ) { SessionViewTable = SessionViewsUpdate.getTable( SessionDataColumn_PrimaryKey, Search.SessionDataId.get(), "where sessionid = '" + SessionId + "'", false ); } else { SessionViewTable = SessionViewsUpdate.getEmptyTable(); } DataRow SessionViewRow = _getSessionViewRow( SessionViewTable, Search.Name, CswEnumNbtSessionDataType.Search, IncludeInQuickLaunch, KeepInQuickLaunch ); //SessionViewRow[SessionDataColumn_SearchId] = CswConvert.ToDbVal( Search.SearchId ); SessionViewRow[SessionDataColumn_ViewXml] = Search.ToString(); SessionViewsUpdate.update( SessionViewTable ); return new CswNbtSessionDataId( CswConvert.ToInt32( SessionViewRow[SessionDataColumn_PrimaryKey] ) ); } // saveSessionData(Search)
public override void update() { // Create OpenUrl DocumentPS property CswTableUpdate JctPSOCPUpdate = _CswNbtSchemaModTrnsctn.makeCswTableUpdate( "31210_jctpsocp_update", "jct_propertyset_ocprop" ); DataTable JctPSOCPTable = JctPSOCPUpdate.getEmptyTable(); CswNbtMetaDataPropertySet DocumentPS = _CswNbtSchemaModTrnsctn.MetaData.getPropertySet( CswEnumNbtPropertySetName.DocumentSet ); foreach( CswNbtMetaDataObjectClass DocOC in DocumentPS.getObjectClasses() ) { CswNbtMetaDataObjectClassProp OpenFileOCP = DocOC.getObjectClassProp( CswNbtPropertySetDocument.PropertyName.OpenFile ); if( null == OpenFileOCP ) { OpenFileOCP = _CswNbtSchemaModTrnsctn.createObjectClassProp( DocOC, new CswNbtWcfMetaDataModel.ObjectClassProp( DocOC ) { PropName = CswNbtPropertySetDocument.PropertyName.OpenFile, FieldType = CswEnumNbtFieldType.Button } ); DataRow NewJctPSOCPRow = JctPSOCPTable.NewRow(); NewJctPSOCPRow["objectclasspropid"] = OpenFileOCP.PropId; NewJctPSOCPRow["propertysetid"] = CswConvert.ToDbVal( DocumentPS.PropertySetId ); JctPSOCPTable.Rows.Add( NewJctPSOCPRow ); } } JctPSOCPUpdate.update( JctPSOCPTable ); // Create ChemWatch property on SDSDocumentOC CswNbtMetaDataObjectClass SDSDocumentOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.SDSDocumentClass ); CswNbtMetaDataObjectClassProp ChemWatchOCP = SDSDocumentOC.getObjectClassProp( CswNbtObjClassSDSDocument.PropertyName.ChemWatch ); if( null == ChemWatchOCP ) { _CswNbtSchemaModTrnsctn.createObjectClassProp( SDSDocumentOC, new CswNbtWcfMetaDataModel.ObjectClassProp( SDSDocumentOC ) { PropName = CswNbtObjClassSDSDocument.PropertyName.ChemWatch, FieldType = CswEnumNbtFieldType.Text, ReadOnly = true } ); } } // update()
/// <summary> /// Copy views from one role to another /// </summary> /// <param name="OriginalRoleId">role from which to copy views</param> /// <param name="NewRoleId">role to receive the new views</param> public void copyViewsByRoleId(CswPrimaryKey OriginalRoleId, CswPrimaryKey NewRoleId) { CswTableUpdate viewsUpdate = _CswNbtResources.makeCswTableUpdate("getRoleViews_select", "node_views"); DataTable originalViews = viewsUpdate.getTable("where roleid = " + OriginalRoleId.PrimaryKey.ToString()); DataTable newViews = viewsUpdate.getEmptyTable(); foreach (DataRow OldView in originalViews.Rows) { DataRow NewView = newViews.NewRow(); foreach (DataColumn Column in originalViews.Columns) { if (Column.ColumnName != "nodeviewid" && Column.ColumnName != "roleid") { NewView[Column.ColumnName] = OldView[Column.ColumnName]; } } NewView["roleid"] = NewRoleId.PrimaryKey; newViews.Rows.Add(NewView); } viewsUpdate.update(newViews); }
public override void update() { CswTableSelect CswTableSelect = _CswNbtSchemaModTrnsctn.makeCswTableSelect( "retrieve-rule-pk", "scheduledrules" ); Int32 UpdatePropValsPk = Int32.MinValue; DataTable DataTableSelect = CswTableSelect.getTable( @"where lower( rulename ) = 'updtpropvals'" ); if( 1 == DataTableSelect.Rows.Count ) { UpdatePropValsPk = CswConvert.ToInt32( DataTableSelect.Rows[0]["scheduledruleid"] ); } CswTableUpdate CswTableUpdate = _CswNbtSchemaModTrnsctn.makeCswTableUpdate( "Add-nodes-per-cycle", "scheduledruleparams" ); DataTable DataTableUpdate = CswTableUpdate.getEmptyTable(); DataRow NewRow = DataTableUpdate.NewRow(); NewRow["scheduledruleid"] = UpdatePropValsPk; NewRow["paramname"] = "NodesPerCycle"; NewRow["paramval"] = 25; DataTableUpdate.Rows.Add( NewRow ); CswTableUpdate.update( DataTableUpdate ); }//Update()
private void _createPermissionPropertySet() { CswNbtMetaDataPropertySet PermissionPS = _CswNbtSchemaModTrnsctn.MetaData.getPropertySet(CswEnumNbtPropertySetName.PermissionSet); if (null == PermissionPS) { PermissionPS = _CswNbtSchemaModTrnsctn.MetaData.makeNewPropertySet(CswEnumNbtPropertySetName.PermissionSet, "check.png"); CswTableUpdate JctPSOCUpdate = _CswNbtSchemaModTrnsctn.makeCswTableUpdate("29570_jctpsoc_update", "jct_propertyset_objectclass"); DataTable JctPSOCTable = JctPSOCUpdate.getEmptyTable(); _addObjClassToPropertySetPermission(JctPSOCTable, CswEnumNbtObjectClass.InventoryGroupPermissionClass, PermissionPS.PropertySetId); _addObjClassToPropertySetPermission(JctPSOCTable, CswEnumNbtObjectClass.ReportGroupPermissionClass, PermissionPS.PropertySetId); _addObjClassToPropertySetPermission(JctPSOCTable, CswEnumNbtObjectClass.MailReportGroupPermissionClass, PermissionPS.PropertySetId); JctPSOCUpdate.update(JctPSOCTable); CswTableUpdate JctPSOCPUpdate = _CswNbtSchemaModTrnsctn.makeCswTableUpdate("29570_jctpsocp_update", "jct_propertyset_ocprop"); DataTable JctPSOCPTable = JctPSOCPUpdate.getEmptyTable(); _addObjClassPropsToPropertySetPermission(JctPSOCPTable, CswEnumNbtObjectClass.InventoryGroupPermissionClass, PermissionPS.PropertySetId); _addObjClassPropsToPropertySetPermission(JctPSOCPTable, CswEnumNbtObjectClass.ReportGroupPermissionClass, PermissionPS.PropertySetId); _addObjClassPropsToPropertySetPermission(JctPSOCPTable, CswEnumNbtObjectClass.MailReportGroupPermissionClass, PermissionPS.PropertySetId); JctPSOCPUpdate.update(JctPSOCPTable); } }
/// <summary> /// Save search to row in 'search' table. Returns searchid. /// </summary> public bool SaveToDb() { CswTableUpdate SearchUpdate = _CswNbtResources.makeCswTableUpdate("CswNbtSearch_SaveToDb", CswNbtSearchManager.SearchTableName); DataTable SearchTable = null; DataRow SearchRow = null; if (null != SearchId && Int32.MinValue != SearchId.PrimaryKey) { SearchTable = SearchUpdate.getTable("where searchid = " + SearchId.PrimaryKey); if (SearchTable.Rows.Count > 0) { SearchRow = SearchTable.Rows[0]; } } if (null == SearchRow) { SearchTable = SearchUpdate.getEmptyTable(); SearchRow = SearchTable.NewRow(); SearchTable.Rows.Add(SearchRow); SearchId = new CswPrimaryKey(CswNbtSearchManager.SearchTableName, CswConvert.ToInt32(SearchRow["searchid"])); } if (null != SearchRow) { //SearchRow["searchid"] = CswConvert.ToDbVal(SearchId); SearchRow["name"] = Name; SearchRow["category"] = Category; SearchRow["searchdata"] = ToString(); if (null != UserId) { SearchRow["userid"] = CswConvert.ToDbVal(UserId.PrimaryKey); } } SearchUpdate.update(SearchTable); return(true); } // SaveToDb()
/// <summary> /// Stores data in temporary Oracle tables /// </summary> public static Int32 storeData(CswNbtResources CswNbtResources, string FileName, string FullFilePath, string ImportDefinitionName, bool Overwrite) { CswNbtSchemaModTrnsctn _CswNbtSchemaModTrnsctn = new CswNbtSchemaModTrnsctn(CswNbtResources); //StringCollection ret = new StringCollection(); DataSet ExcelDataSet = ReadExcel(FullFilePath); // Store the job reference in import_data_job CswTableUpdate ImportDataJobUpdate = CswNbtResources.makeCswTableUpdate("Importer_DataJob_Insert", CswNbtImportTables.ImportDataJob.TableName); DataTable ImportDataJobTable = ImportDataJobUpdate.getEmptyTable(); DataRow DataJobRow = ImportDataJobTable.NewRow(); DataJobRow[CswNbtImportTables.ImportDataJob.filename] = FileName; DataJobRow[CswNbtImportTables.ImportDataJob.userid] = CswNbtResources.CurrentNbtUser.UserId.PrimaryKey; DataJobRow[CswNbtImportTables.ImportDataJob.datestarted] = CswConvert.ToDbVal(DateTime.Now); ImportDataJobTable.Rows.Add(DataJobRow); Int32 JobId = CswConvert.ToInt32(DataJobRow[CswNbtImportTables.ImportDataJob.importdatajobid]); ImportDataJobUpdate.update(ImportDataJobTable); foreach (DataTable ExcelDataTable in ExcelDataSet.Tables) { string SheetName = ExcelDataTable.TableName; CswNbtImportDef Definition = null; //try //{ Definition = new CswNbtImportDef(CswNbtResources, ImportDefinitionName, SheetName); //} //catch( Exception ex ) //{ // //OnMessage( "Sheet '" + SheetName + "' is invalid: " + ex.Message ); //} // ignore bad sheetnames if (null != Definition) { // Determine Oracle table name Int32 i = 1; string ImportDataTableName = CswNbtImportTables.ImportDataN.TableNamePrefix + i.ToString(); while (_CswNbtSchemaModTrnsctn.isTableDefinedInDataBase(ImportDataTableName)) { i++; ImportDataTableName = CswNbtImportTables.ImportDataN.TableNamePrefix + i.ToString(); } // Generate an Oracle table for storing and manipulating data _CswNbtSchemaModTrnsctn.addTable(ImportDataTableName, CswNbtImportTables.ImportDataN.PkColumnName); _CswNbtSchemaModTrnsctn.addBooleanColumn(ImportDataTableName, CswNbtImportTables.ImportDataN.error, "", false); _CswNbtSchemaModTrnsctn.addClobColumn(ImportDataTableName, CswNbtImportTables.ImportDataN.errorlog, "", false); foreach (DataColumn ExcelColumn in ExcelDataTable.Columns) { _CswNbtSchemaModTrnsctn.addStringColumn(ImportDataTableName, CswNbtImportDefBinding.SafeColName(ExcelColumn.ColumnName), "", false, 4000); } foreach (CswNbtImportDefOrder Order in Definition.ImportOrder.Values) { _CswNbtSchemaModTrnsctn.addLongColumn(ImportDataTableName, Order.PkColName, "", false); } CswNbtResources.commitTransaction(); CswNbtResources.beginTransaction(); CswNbtResources.DataDictionary.refresh(); // Store the sheet reference in import_data_map CswTableUpdate ImportDataMapUpdate = CswNbtResources.makeCswTableUpdate("Importer_DataMap_Insert", CswNbtImportTables.ImportDataMap.TableName); DataTable ImportDataMapTable = ImportDataMapUpdate.getEmptyTable(); DataRow DataMapRow = ImportDataMapTable.NewRow(); DataMapRow[CswNbtImportTables.ImportDataMap.datatablename] = ImportDataTableName; DataMapRow[CswNbtImportTables.ImportDataMap.importdefid] = Definition.ImportDefinitionId; DataMapRow[CswNbtImportTables.ImportDataMap.importdatajobid] = JobId; DataMapRow[CswNbtImportTables.ImportDataMap.overwrite] = CswConvert.ToDbVal(Overwrite); DataMapRow[CswNbtImportTables.ImportDataMap.completed] = CswConvert.ToDbVal(false); ImportDataMapTable.Rows.Add(DataMapRow); ImportDataMapUpdate.update(ImportDataMapTable); // Copy the Excel data into the Oracle table CswTableUpdate ImportDataUpdate = CswNbtResources.makeCswTableUpdate("Importer_Update", ImportDataTableName); DataTable ImportDataTable = ImportDataUpdate.getEmptyTable(); foreach (DataRow ExcelRow in ExcelDataTable.Rows) { bool hasData = false; DataRow ImportRow = ImportDataTable.NewRow(); ImportRow[CswNbtImportTables.ImportDataN.error] = CswConvert.ToDbVal(false); foreach (DataColumn ExcelColumn in ExcelDataTable.Columns) { if (ExcelRow[ExcelColumn] != DBNull.Value) { hasData = true; } ImportRow[CswNbtImportDefBinding.SafeColName(ExcelColumn.ColumnName)] = ExcelRow[ExcelColumn]; } if (hasData == true) { ImportDataTable.Rows.Add(ImportRow); } } ImportDataUpdate.update(ImportDataTable); //OnMessage( "Sheet '" + SheetName + "' is stored in Table '" + ImportDataTableName + "'" ); } // if( null != Definition ) } // foreach( DataTable ExcelDataTable in ExcelDataSet.Tables ) CswNbtResources.commitTransaction(); CswNbtResources.beginTransaction(); //return ret; return(JobId); }
public override void update() { string SQLQuery = @"with layouttabs as (select lt.*, case lt.layout_type when 'edit' then lt.tab_name else lt.layout_type end as uniquename from layout_tab lt), oldlayouttabs as (select l.layouttype, t.tabname, l.tabgroup, t.taborder, l.display_row, l.display_column, l.nodetypeid, l.nodetypepropid, l.nodetypetabsetid, case l.layouttype when 'Add' then 'add' when 'Preview' then 'preview' when 'Table' then 'search' else t.tabname end as tabtype from nodetype_layout l left join nodetype_tabset t on l.nodetypetabsetid = t.nodetypetabsetid) select l.layouttype, l.tabname, l.tabgroup, l.display_column, ntp.propname, l.nodetypepropid, n2.nodeid design_nodetypeprop_nodeid, lt.layout_tab_id from oldlayouttabs l join nodetype_props ntp on l.nodetypepropid = ntp.nodetypepropid left join nodes n2 on n2.relationalid = l.nodetypepropid and n2.relationaltable = 'nodetype_props' left join nodes n3 on n3.relationalid = l.nodetypetabsetid and n3.relationaltable = 'nodetype_tabset' left join layouttabs lt on lt.layout_type = lower(decode(l.layouttype, 'Table', 'search', l.layouttype)) and lt.metadata_nodetypeid = l.nodetypeid where lt.uniquename = l.tabtype order by l.nodetypeid, l.layouttype, l.taborder, l.display_column, l.display_row"; CswTableUpdate LayoutColumnUpdate = _CswNbtSchemaModTrnsctn.makeCswTableUpdate( "layout_column_update", "layout_column" ); DataTable LayoutColumnTable = LayoutColumnUpdate.getEmptyTable(); CswTableUpdate LayoutPropsUpdate = _CswNbtSchemaModTrnsctn.makeCswTableUpdate( "layout_property_update", "layout_property" ); DataTable LayoutPropsTable = LayoutPropsUpdate.getEmptyTable(); CswArbitrarySelect OldLayoutPropsSelect = _CswNbtSchemaModTrnsctn.makeCswArbitrarySelect( "old_layout_props_select", SQLQuery ); DataTable OldLayoutPropsTable = OldLayoutPropsSelect.getTable(); int colpk = 1; int rownum = 1; int colnum = 1; string layouttype = ""; string tabname = ""; string tabgroup = ""; foreach( DataRow OldLayoutPropRow in OldLayoutPropsTable.Rows ) { if( CswConvert.ToInt32( OldLayoutPropRow["display_column"] ) != colnum || OldLayoutPropRow["layouttype"].ToString() != layouttype || OldLayoutPropRow["tabname"].ToString() != tabname ) { DataRow LayoutColumnRow = LayoutColumnTable.NewRow(); LayoutColumnRow["column_order"] = OldLayoutPropRow["display_column"]; LayoutColumnRow["parent_id"] = OldLayoutPropRow["layout_tab_id"]; LayoutColumnRow["parent_type"] = "tab"; LayoutColumnTable.Rows.Add( LayoutColumnRow ); colnum = CswConvert.ToInt32( OldLayoutPropRow["display_column"] ); colpk = CswConvert.ToInt32( LayoutColumnRow["layout_column_id"] ); rownum = 1; layouttype = OldLayoutPropRow["layouttype"].ToString(); tabname = OldLayoutPropRow["tabname"].ToString(); } if( false == String.IsNullOrEmpty( OldLayoutPropRow["tabgroup"].ToString() ) && OldLayoutPropRow["tabgroup"].ToString() != tabgroup ) { DataRow LayoutColumnRow = LayoutColumnTable.NewRow(); LayoutColumnRow["column_name"] = OldLayoutPropRow["tabgroup"].ToString(); LayoutColumnRow["column_order"] = rownum; LayoutColumnRow["parent_id"] = colpk; LayoutColumnRow["parent_type"] = "column"; LayoutColumnTable.Rows.Add( LayoutColumnRow ); colpk = CswConvert.ToInt32( LayoutColumnRow["layout_column_id"] ); tabgroup = OldLayoutPropRow["tabgroup"].ToString(); rownum = 1; } if( String.IsNullOrEmpty( OldLayoutPropRow["tabgroup"].ToString() ) ) { DataRow LayoutPropRow = LayoutPropsTable.NewRow(); LayoutPropRow["prop_order"] = rownum; if( OldLayoutPropRow["propname"].ToString() == "Save" ) { LayoutPropRow["prop_order"] = Int32.MaxValue; } LayoutPropRow["column_id"] = colpk; LayoutPropRow["metadata_nodetypepropid"] = OldLayoutPropRow["nodetypepropid"]; LayoutPropRow["design_nodetypeprop_nodeid"] = OldLayoutPropRow["design_nodetypeprop_nodeid"]; LayoutPropsTable.Rows.Add( LayoutPropRow ); rownum++; } } LayoutColumnUpdate.update( LayoutColumnTable ); LayoutPropsUpdate.update( LayoutPropsTable ); } // update()
public override void update() { string SQLQuery = @"with layouttabs as (select lt.*, case lt.layout_type when 'edit' then lt.tab_name else lt.layout_type end as uniquename from layout_tab lt), oldlayouttabs as (select l.layouttype, t.tabname, l.tabgroup, t.taborder, l.display_row, l.display_column, l.nodetypeid, l.nodetypepropid, l.nodetypetabsetid, case l.layouttype when 'Add' then 'add' when 'Preview' then 'preview' when 'Table' then 'search' else t.tabname end as tabtype from nodetype_layout l left join nodetype_tabset t on l.nodetypetabsetid = t.nodetypetabsetid) select l.layouttype, l.display_row, l.display_column, n2.nodename nodetype_propname, ntp.propname, l.nodetypeid, n.nodeid design_nodetype_nodeid, l.nodetypepropid, n2.nodeid design_nodetypeprop_nodeid, lt.layout_tab_id, lc.layout_column_id, ntp.filterpropid, ntp.filtersubfield, ntp.filtermode, ntp.filtervalue, lp.layout_property_id, lp2.layout_property_id parent_property from oldlayouttabs l join nodetype_props ntp on l.nodetypepropid = ntp.nodetypepropid left join nodes n on n.relationalid = l.nodetypeid and n.relationaltable = 'nodetypes' left join nodes n2 on n2.relationalid = l.nodetypepropid and n2.relationaltable = 'nodetype_props' left join layouttabs lt on lt.layout_type = lower(decode(l.layouttype, 'Table', 'search', l.layouttype)) and lt.metadata_nodetypeid = l.nodetypeid left join layout_column lc on lt.layout_tab_id = lc.parent_id and lc.column_order = l.display_column left join layout_property lp on lp.metadata_nodetypepropid = ntp.nodetypepropid and lp.column_id = lc.layout_column_id left join layout_property lp2 on lp2.metadata_nodetypepropid = ntp.filterpropid --and lp2.column_id = lc.layout_column_id left join layout_column lc2 on lc2.layout_column_id = lp2.column_id left join layout_tab lt2 on lt2.layout_tab_id = lc2.parent_id where lt.uniquename = l.tabtype and ntp.filtersubfield is not null and lt2.layout_type = lower(decode(l.layouttype, 'Table', 'search', l.layouttype)) order by l.nodetypeid, l.layouttype, l.taborder, ntp.filtervalue, l.display_column, l.display_row"; CswTableUpdate LayoutColumnUpdate = _CswNbtSchemaModTrnsctn.makeCswTableUpdate( "layout_column_update", "layout_column" ); DataTable LayoutColumnTable = LayoutColumnUpdate.getEmptyTable(); CswArbitrarySelect ConditionalPropsSelect = _CswNbtSchemaModTrnsctn.makeCswArbitrarySelect( "conditional_props_select", SQLQuery ); DataTable ConditionalPropsTable = ConditionalPropsSelect.getTable(); int colpk = 1; int colorder = 1; int rownum = 1; int parentpropid = 1; string filtervalue = ""; foreach( DataRow ConditionalPropRow in ConditionalPropsTable.Rows ) { if( CswConvert.ToInt32( ConditionalPropRow["parent_property"] ) != parentpropid || ConditionalPropRow["filtervalue"].ToString() != filtervalue ) { if( CswConvert.ToInt32( ConditionalPropRow["parent_property"] ) != parentpropid ) { colorder = 1; } DataRow LayoutColumnRow = LayoutColumnTable.NewRow(); LayoutColumnRow["column_order"] = colorder; LayoutColumnRow["column_name"] = ConditionalPropRow["filtersubfield"] + " " + ( String.IsNullOrEmpty( ConditionalPropRow["filtermode"].ToString() ) ? "Null" : ConditionalPropRow["filtermode"] ) + " " + ConditionalPropRow["filtervalue"]; LayoutColumnRow["parent_id"] = ConditionalPropRow["parent_property"]; LayoutColumnRow["parent_type"] = "property"; LayoutColumnTable.Rows.Add( LayoutColumnRow ); parentpropid = CswConvert.ToInt32( ConditionalPropRow["parent_property"] ); colpk = CswConvert.ToInt32( LayoutColumnRow["layout_column_id"] ); colorder++; filtervalue = ConditionalPropRow["filtervalue"].ToString(); rownum = 1; } _CswNbtSchemaModTrnsctn.execArbitraryPlatformNeutralSql( @"update layout_property set prop_order = " + rownum + ", column_id = " + colpk + " where layout_property_id = " + ConditionalPropRow["layout_property_id"] ); rownum++; } LayoutColumnUpdate.update( LayoutColumnTable ); _CswNbtSchemaModTrnsctn.execArbitraryPlatformNeutralSql( "alter table layout_property add foreign key (column_id) references layout_column (layout_column_id)" ); } // update()
public void initEmptyLandingPageTable() { _LandingPageUpdate = _CswNbtResources.makeCswTableUpdate("AddLandingPageItem_Update", "landingpage"); _LandingPageTable = _LandingPageUpdate.getEmptyTable(); _ItemRow = _LandingPageTable.NewRow(); }
public override void update() { // Add new 'GHS Classification' object class CswNbtMetaDataObjectClass GHSClassOC = _CswNbtSchemaModTrnsctn.createObjectClass( CswEnumNbtObjectClass.GHSClassificationClass, "warning.png", false ); _CswNbtSchemaModTrnsctn.createObjectClassProp( GHSClassOC, new CswNbtWcfMetaDataModel.ObjectClassProp() { FieldType = CswEnumNbtFieldType.List, PropName = CswNbtObjClassGHSClassification.PropertyName.Category, ListOptions = "Physical,Health,Environmental" } ); // Language properties foreach( string Language in CswNbtPropertySetPhrase.SupportedLanguages.All ) { _CswNbtSchemaModTrnsctn.createObjectClassProp( GHSClassOC, new CswNbtWcfMetaDataModel.ObjectClassProp( GHSClassOC ) { PropName = Language, FieldType = CswEnumNbtFieldType.Text } ); } // Add new object class to 'Phrase' Property Set CswNbtMetaDataPropertySet PhrasePS = _CswNbtSchemaModTrnsctn.MetaData.getPropertySet( CswEnumNbtPropertySetName.PhraseSet ); CswTableUpdate jctUpdate = _CswNbtSchemaModTrnsctn.makeCswTableUpdate( "31074_jctPropSets_update", "jct_propertyset_objectclass" ); DataTable jctTable = jctUpdate.getEmptyTable(); DataRow row = jctTable.NewRow(); row["propertysetid"] = PhrasePS.PropertySetId; row["objectclassid"] = GHSClassOC.ObjectClassId; jctTable.Rows.Add( row ); jctUpdate.update( jctTable ); CswNbtMetaDataObjectClass GhsOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.GHSClass ); // Delete old GHS properties string[] doomedPropNames = new string[] { "Classification", "Class Codes Grid", "Class Codes", "Add Class Codes" }; foreach( string doomedPropName in doomedPropNames ) { CswNbtMetaDataObjectClassProp doomedOCP = GhsOC.getObjectClassProp( doomedPropName ); if( null != doomedOCP ) { _CswNbtSchemaModTrnsctn.MetaData.DeleteObjectClassProp( doomedOCP, true ); } } // Add new GHS properties _CswNbtSchemaModTrnsctn.createObjectClassProp( GhsOC, new CswNbtWcfMetaDataModel.ObjectClassProp() { FieldType = CswEnumNbtFieldType.Grid, PropName = CswNbtObjClassGHS.PropertyName.ClassificationsGrid, Extended = CswEnumNbtGridPropMode.Small.ToString(), NumberMaxValue = 10 } ); _CswNbtSchemaModTrnsctn.createObjectClassProp( GhsOC, new CswNbtWcfMetaDataModel.ObjectClassProp() { FieldType = CswEnumNbtFieldType.MultiList, PropName = CswNbtObjClassGHS.PropertyName.Classifications } ); } // update()
public override void update() { CswTableUpdate jctUpdate = _CswNbtSchemaModTrnsctn.makeCswTableUpdate( "29311_jctddntp_update", "jct_dd_ntp" ); DataTable jctTable = jctUpdate.getEmptyTable(); // Set up Sequence Nodetype CswNbtMetaDataObjectClass SequenceOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.DesignSequenceClass ); CswNbtMetaDataNodeType SequenceNT = _CswNbtSchemaModTrnsctn.MetaData.makeNewNodeTypeNew( new CswNbtWcfMetaDataModel.NodeType( SequenceOC ) { NodeTypeName = "Design Sequence", Category = "Design", IconFileName = "wrench.png" } ); //SequenceNT.addNameTemplateText( CswNbtObjClassDesignSequence.PropertyName.Name ); SequenceNT._DataRow["nametemplate"] = CswNbtMetaData.TemplateTextToTemplateValue( SequenceNT.getNodeTypeProps(), CswNbtMetaData.MakeTemplateEntry( CswNbtObjClassDesignSequence.PropertyName.Name ) ); Int32 TabId = SequenceNT.getFirstNodeTypeTab().TabId; CswNbtMetaDataNodeTypeProp SeqNameNTP = SequenceNT.getNodeTypePropByObjectClassProp( CswNbtObjClassDesignSequence.PropertyName.Name ); CswNbtMetaDataNodeTypeProp SeqNextValueNTP = SequenceNT.getNodeTypePropByObjectClassProp( CswNbtObjClassDesignSequence.PropertyName.NextValue ); CswNbtMetaDataNodeTypeProp SeqPadNTP = SequenceNT.getNodeTypePropByObjectClassProp( CswNbtObjClassDesignSequence.PropertyName.Pad ); CswNbtMetaDataNodeTypeProp SeqPostNTP = SequenceNT.getNodeTypePropByObjectClassProp( CswNbtObjClassDesignSequence.PropertyName.Post ); CswNbtMetaDataNodeTypeProp SeqPreNTP = SequenceNT.getNodeTypePropByObjectClassProp( CswNbtObjClassDesignSequence.PropertyName.Pre ); // Edit Layout SeqNameNTP.updateLayout( CswEnumNbtLayoutType.Edit, true, TabId, DisplayRow: 1, DisplayColumn: 1 ); SeqPreNTP.updateLayout( CswEnumNbtLayoutType.Edit, true, TabId, DisplayRow: 2, DisplayColumn: 1 ); SeqPostNTP.updateLayout( CswEnumNbtLayoutType.Edit, true, TabId, DisplayRow: 3, DisplayColumn: 1 ); SeqPadNTP.updateLayout( CswEnumNbtLayoutType.Edit, true, TabId, DisplayRow: 4, DisplayColumn: 1 ); SeqNextValueNTP.updateLayout( CswEnumNbtLayoutType.Edit, true, TabId, DisplayRow: 5, DisplayColumn: 1 ); // Add Layout SeqNameNTP.updateLayout( CswEnumNbtLayoutType.Add, false, Int32.MinValue, DisplayRow: 1, DisplayColumn: 1 ); SeqPreNTP.updateLayout( CswEnumNbtLayoutType.Add, false, Int32.MinValue, DisplayRow: 2, DisplayColumn: 1 ); SeqPostNTP.updateLayout( CswEnumNbtLayoutType.Add, false, Int32.MinValue, DisplayRow: 3, DisplayColumn: 1 ); SeqPadNTP.updateLayout( CswEnumNbtLayoutType.Add, false, Int32.MinValue, DisplayRow: 4, DisplayColumn: 1 ); SeqNextValueNTP.removeFromLayout( CswEnumNbtLayoutType.Add ); // Populate nodes // Very important that this happens BEFORE we map to the nodetypes table, or else we'll end up duplicating rows! Dictionary<Int32, CswNbtObjClassDesignSequence> SequenceNodeMap = new Dictionary<int, CswNbtObjClassDesignSequence>(); CswTableSelect SequencesTableSelect = _CswNbtSchemaModTrnsctn.makeCswTableSelect( "29311_sequencetable_select", "sequences" ); DataTable SequencesTable = SequencesTableSelect.getTable(); foreach( DataRow SeqRow in SequencesTable.Rows ) { CswNbtObjClassDesignSequence node = _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId( SequenceNT.NodeTypeId, OverrideUniqueValidation: true, OnAfterMakeNode: delegate( CswNbtNode NewNode ) { CswNbtObjClassDesignSequence NewSeqNode = NewNode; NewSeqNode.Name.Text = SeqRow["sequencename"].ToString(); NewSeqNode.Pad.Value = CswConvert.ToInt32( SeqRow["pad"] ); NewSeqNode.Post.Text = SeqRow["post"].ToString(); NewSeqNode.Pre.Text = SeqRow["prep"].ToString(); } ); node.RelationalId = new CswPrimaryKey( "sequences", CswConvert.ToInt32( SeqRow["sequenceid"] ) ); node.postChanges( false ); SequenceNodeMap.Add( node.RelationalId.PrimaryKey, node ); } // Here's where the extra special super-secret magic comes in //SequenceNT.TableName = "sequences"; SequenceNT._DataRow["tablename"] = "sequences"; _addJctRow( jctTable, SeqNameNTP, SequenceNT.TableName, "sequencename" ); _addJctRow( jctTable, SeqPadNTP, SequenceNT.TableName, "pad" ); _addJctRow( jctTable, SeqPostNTP, SequenceNT.TableName, "post" ); _addJctRow( jctTable, SeqPreNTP, SequenceNT.TableName, "prep" ); jctUpdate.update( jctTable ); // Set up existing relationships to sequences Dictionary<Int32, CswNbtObjClassDesignSequence> SequenceValueMap = new Dictionary<Int32, CswNbtObjClassDesignSequence>(); string Sql = @"select n.nodeid, r.sequenceid from nodetype_props p join nodetypes t on p.nodetypeid = t.nodetypeid join nodes n on t.nodetypeid = n.nodetypeid join nodetype_props r on n.relationalid = r.nodetypepropid where p.propname = 'Sequence' and t.nodetypename like 'Design%'"; CswArbitrarySelect ExistingSequenceIdSelect = _CswNbtSchemaModTrnsctn.makeCswArbitrarySelect( "getExistingSequenceIds", Sql ); DataTable ExistingSequenceIdTable = ExistingSequenceIdSelect.getTable(); foreach( DataRow row in ExistingSequenceIdTable.Rows ) { Int32 thisSeqId = CswConvert.ToInt32( row["sequenceid"] ); if( Int32.MinValue != thisSeqId && SequenceNodeMap.ContainsKey( thisSeqId ) ) { SequenceValueMap.Add( CswConvert.ToInt32( row["nodeid"] ), SequenceNodeMap[thisSeqId] ); } } foreach( CswEnumNbtFieldType ft in new CswEnumNbtFieldType[] { CswEnumNbtFieldType.Barcode, CswEnumNbtFieldType.Sequence } ) { CswNbtMetaDataNodeType PropNT = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( CswNbtObjClassDesignNodeTypeProp.getNodeTypeName( ft ) ); //CswNbtFieldTypeRuleSequence Rule = (CswNbtFieldTypeRuleSequence) _CswNbtSchemaModTrnsctn.MetaData.getFieldTypeRule( ft ); //CswNbtFieldTypeAttribute SequenceAttribute = Rule.getAttributes().FirstOrDefault( a => a.Name == CswEnumNbtPropertyAttributeName.Sequence ); CswNbtMetaDataNodeTypeProp SequenceNTP = PropNT.getNodeTypeProp( CswEnumNbtPropertyAttributeName.Sequence ); SequenceNTP.SetFKDeprecated( CswEnumNbtViewRelatedIdType.ObjectClassId.ToString(), SequenceOC.ObjectClassId ); CswNbtViewId ViewId = SequenceNTP.DesignNode.AttributeProperty[CswNbtFieldTypeRuleRelationship.AttributeName.View].AsViewReference.ViewId; CswNbtView View = _CswNbtSchemaModTrnsctn.ViewSelect.restoreView( ViewId ); CswNbtFieldTypeRuleDefaultImpl.setDefaultView( _CswNbtSchemaModTrnsctn.MetaData, SequenceNTP.DesignNode, View, CswEnumNbtViewRelatedIdType.ObjectClassId.ToString(), SequenceOC.ObjectClassId, false ); foreach( CswNbtObjClassDesignNodeTypeProp PropNode in PropNT.getNodes( false, true ) ) { if( SequenceValueMap.ContainsKey( PropNode.NodeId.PrimaryKey ) ) { CswNbtObjClassDesignSequence SeqNode = SequenceValueMap[PropNode.NodeId.PrimaryKey]; if( null != SeqNode ) { PropNode.Node.Properties[SequenceNTP].AsRelationship.RelatedNodeId = SeqNode.NodeId; PropNode.postChanges( false ); } } } } // foreach( CswEnumNbtFieldType ft in new CswEnumNbtFieldType[] {CswEnumNbtFieldType.Barcode, CswEnumNbtFieldType.Sequence} ) } // update()
public override void update() { Dictionary<CswEnumNbtPropertySetName, Int32> PropSetDict = new Dictionary<CswEnumNbtPropertySetName, Int32>(); { // Populate property_set CswTableUpdate PropSetUpdate = _CswNbtSchemaModTrnsctn.makeCswTableUpdate( "28160_ps_update", "property_set" ); DataTable PropSetTable = PropSetUpdate.getEmptyTable(); foreach( CswEnumNbtPropertySetName PropSetName in CswEnumNbtPropertySetName.All ) { if( PropSetName != CswEnumNbtPropertySetName.MaterialSet ) { DataRow Row = PropSetTable.NewRow(); Row["name"] = PropSetName; switch( PropSetName ) { case CswEnumNbtPropertySetName.GeneratorTargetSet: Row["iconfilename"] = "clipboardcheck.png"; break; case CswEnumNbtPropertySetName.InspectionParentSet: Row["iconfilename"] = "target.png"; break; case CswEnumNbtPropertySetName.RequestItemSet: Row["iconfilename"] = "cart.png"; break; case CswEnumNbtPropertySetName.SchedulerSet: Row["iconfilename"] = "calendar.png"; break; } PropSetTable.Rows.Add( Row ); PropSetDict[PropSetName] = CswConvert.ToInt32( Row["propertysetid"] ); } } PropSetUpdate.update( PropSetTable ); } Dictionary<CswEnumNbtObjectClass, CswEnumNbtPropertySetName> Dict = new Dictionary<CswEnumNbtObjectClass, CswEnumNbtPropertySetName>(); Dict.Add( CswEnumNbtObjectClass.InspectionDesignClass, CswEnumNbtPropertySetName.GeneratorTargetSet ); Dict.Add( CswEnumNbtObjectClass.TaskClass, CswEnumNbtPropertySetName.GeneratorTargetSet ); Dict.Add( CswEnumNbtObjectClass.InspectionTargetClass, CswEnumNbtPropertySetName.InspectionParentSet ); Dict.Add( CswEnumNbtObjectClass.RequestContainerDispenseClass, CswEnumNbtPropertySetName.RequestItemSet ); Dict.Add( CswEnumNbtObjectClass.RequestContainerUpdateClass, CswEnumNbtPropertySetName.RequestItemSet ); Dict.Add( CswEnumNbtObjectClass.RequestMaterialCreateClass, CswEnumNbtPropertySetName.RequestItemSet ); Dict.Add( CswEnumNbtObjectClass.RequestMaterialDispenseClass, CswEnumNbtPropertySetName.RequestItemSet ); Dict.Add( CswEnumNbtObjectClass.GeneratorClass, CswEnumNbtPropertySetName.SchedulerSet ); Dict.Add( CswEnumNbtObjectClass.MailReportClass, CswEnumNbtPropertySetName.SchedulerSet ); { // Populate jct_propertyset_objectclass CswTableUpdate JctUpdate = _CswNbtSchemaModTrnsctn.makeCswTableUpdate( "28160_jct_update", "jct_propertyset_objectclass" ); DataTable JctTable = JctUpdate.getEmptyTable(); foreach( CswEnumNbtObjectClass oc in Dict.Keys ) { DataRow NewRow = JctTable.NewRow(); NewRow["objectclassid"] = _CswNbtSchemaModTrnsctn.MetaData.getObjectClassId( oc ); NewRow["propertysetid"] = CswConvert.ToDbVal( PropSetDict[Dict[oc]] ); JctTable.Rows.Add( NewRow ); } JctUpdate.update( JctTable ); } { // Populate jct_propertyset_objectclassprop CswTableUpdate JctUpdate = _CswNbtSchemaModTrnsctn.makeCswTableUpdate( "28160_jct2_update", "jct_propertyset_ocprop" ); DataTable JctTable = JctUpdate.getEmptyTable(); foreach( CswEnumNbtObjectClass oc in Dict.Keys ) { CswNbtMetaDataObjectClass ObjectClass = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( oc ); foreach( CswNbtMetaDataObjectClassProp ObjectClassProp in ObjectClass.getObjectClassProps() ) { bool doInsert = false; switch( Dict[oc] ) { case CswEnumNbtPropertySetName.GeneratorTargetSet: doInsert = ( ObjectClassProp.PropName == CswNbtPropertySetGeneratorTarget.PropertyName.CreatedDate || ObjectClassProp.PropName == CswNbtPropertySetGeneratorTarget.PropertyName.DueDate || ObjectClassProp.PropName == CswNbtPropertySetGeneratorTarget.PropertyName.Generator || ObjectClassProp.PropName == CswNbtPropertySetGeneratorTarget.PropertyName.IsFuture ); break; case CswEnumNbtPropertySetName.RequestItemSet: doInsert = ( ObjectClassProp.PropName == CswNbtPropertySetRequestItem.PropertyName.AssignedTo || ObjectClassProp.PropName == CswNbtPropertySetRequestItem.PropertyName.Comments || ObjectClassProp.PropName == CswNbtPropertySetRequestItem.PropertyName.Description || ObjectClassProp.PropName == CswNbtPropertySetRequestItem.PropertyName.ExternalOrderNumber || ObjectClassProp.PropName == CswNbtPropertySetRequestItem.PropertyName.Fulfill || ObjectClassProp.PropName == CswNbtPropertySetRequestItem.PropertyName.InventoryGroup || ObjectClassProp.PropName == CswNbtPropertySetRequestItem.PropertyName.Location || ObjectClassProp.PropName == CswNbtPropertySetRequestItem.PropertyName.Material || ObjectClassProp.PropName == CswNbtPropertySetRequestItem.PropertyName.Name || ObjectClassProp.PropName == CswNbtPropertySetRequestItem.PropertyName.NeededBy || ObjectClassProp.PropName == CswNbtPropertySetRequestItem.PropertyName.Number || ObjectClassProp.PropName == CswNbtPropertySetRequestItem.PropertyName.Priority || ObjectClassProp.PropName == CswNbtPropertySetRequestItem.PropertyName.Request || ObjectClassProp.PropName == CswNbtPropertySetRequestItem.PropertyName.RequestedFor || ObjectClassProp.PropName == CswNbtPropertySetRequestItem.PropertyName.Requestor || ObjectClassProp.PropName == CswNbtPropertySetRequestItem.PropertyName.Status || ObjectClassProp.PropName == CswNbtPropertySetRequestItem.PropertyName.Type ); break; case CswEnumNbtPropertySetName.InspectionParentSet: doInsert = ( ObjectClassProp.PropName == "Status" ); break; case CswEnumNbtPropertySetName.SchedulerSet: doInsert = ( ObjectClassProp.PropName == "Status" || ObjectClassProp.PropName == "Final Due Date" || ObjectClassProp.PropName == "Next Due Date" || ObjectClassProp.PropName == "Run Status" || ObjectClassProp.PropName == "Warning Days" || ObjectClassProp.PropName == "Due Date Interval" || ObjectClassProp.PropName == "Run Time" || ObjectClassProp.PropName == "Enabled" ); break; } if( doInsert ) { DataRow NewRow = JctTable.NewRow(); NewRow["objectclasspropid"] = ObjectClassProp.PropId; NewRow["propertysetid"] = CswConvert.ToDbVal( PropSetDict[Dict[oc]] ); JctTable.Rows.Add( NewRow ); } } // foreach( CswNbtMetaDataObjectClassProp ObjectClassProp in ObjectClass.getObjectClassProps() ) } // foreach( NbtObjectClass oc in OcPsDict.Keys ) JctUpdate.update( JctTable ); } } // update()
public override void update() { #region Create GHS Signal Word OC CswNbtMetaDataObjectClass SignalWordOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.GHSSignalWordClass ); if( null == SignalWordOC ) { SignalWordOC = _CswNbtSchemaModTrnsctn.createObjectClass( CswEnumNbtObjectClass.GHSSignalWordClass, "warning.png", false ); _CswNbtSchemaModTrnsctn.createObjectClassProp( SignalWordOC, new CswNbtWcfMetaDataModel.ObjectClassProp( SignalWordOC ) { PropName = CswNbtObjClassGHSSignalWord.PropertyName.Code, FieldType = CswEnumNbtFieldType.Text } ); foreach( string Language in CswNbtPropertySetPhrase.SupportedLanguages.All ) { _CswNbtSchemaModTrnsctn.createObjectClassProp( SignalWordOC, new CswNbtWcfMetaDataModel.ObjectClassProp( SignalWordOC ) { PropName = Language, FieldType = CswEnumNbtFieldType.Text } ); } //Attached this new OC to the Phrase PS CswNbtMetaDataPropertySet PhrasePS = _CswNbtSchemaModTrnsctn.MetaData.getPropertySet( CswEnumNbtPropertySetName.PhraseSet ); CswTableUpdate TableUpdate = _CswNbtSchemaModTrnsctn.makeCswTableUpdate( "updatePhrasePropSets", "jct_propertyset_objectclass" ); DataTable ObjClassTbl = TableUpdate.getEmptyTable(); DataRow SignalWordRow = ObjClassTbl.NewRow(); SignalWordRow["propertysetid"] = PhrasePS.PropertySetId; SignalWordRow["objectclassid"] = SignalWordOC.ObjectClassId; ObjClassTbl.Rows.Add( SignalWordRow ); TableUpdate.update( ObjClassTbl ); } #endregion #region Make GHS Signal Word prop a relationship CswNbtMetaDataObjectClass GHS_OC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.GHSClass ); CswNbtMetaDataObjectClassProp SignalWordOCP = GHS_OC.getObjectClassProp( CswNbtObjClassGHS.PropertyName.SignalWord ); CswNbtMetaDataFieldType RelationshipFieldType = _CswNbtSchemaModTrnsctn.MetaData.getFieldType( CswEnumNbtFieldType.Relationship ); CswTableUpdate SignalWordOCPTableUpdate = _CswNbtSchemaModTrnsctn.makeCswTableUpdate( "UpdateSignalWord", "object_class_props" ); DataTable ObjClassPropsTbl = SignalWordOCPTableUpdate.getTable( "where objectclasspropid = " + SignalWordOCP.ObjectClassPropId ); foreach( DataRow row in ObjClassPropsTbl.Rows ) { row["fieldtypeid"] = RelationshipFieldType.FieldTypeId; row["isfk"] = CswConvert.ToDbVal( true ); row["fkvalue"] = SignalWordOC.ObjectClassId; row["fktype"] = "ObjectClassId"; } SignalWordOCPTableUpdate.update( ObjClassPropsTbl ); CswTableUpdate SignalWordNTPTableUpdate = _CswNbtSchemaModTrnsctn.makeCswTableUpdate( "UpdateSignalWord", "nodetype_props" ); DataTable NodeTypePropsTbl = SignalWordNTPTableUpdate.getTable( "where objectclasspropid = " + SignalWordOCP.ObjectClassPropId ); foreach( DataRow row in NodeTypePropsTbl.Rows ) { row["fieldtypeid"] = RelationshipFieldType.FieldTypeId; row["isfk"] = CswConvert.ToDbVal( true ); row["fkvalue"] = SignalWordOC.ObjectClassId; row["fktype"] = "ObjectClassId"; } SignalWordNTPTableUpdate.update( NodeTypePropsTbl ); #endregion } // update()
//bool load( string SessionId ) //{ // return ( false ); //deliberate policy: we don't _want_ to read stats with this class //}//load() //DateTime LastSave { get; } //public void release() //{ //}//release() public void save(CswNbtStatisticsEntry CswNbtStatisticsEntry) { if (_CswNbtResources != null) { if (CswNbtStatisticsEntry.Stats_servertime_count > 0) // protects against repeats { CswTableUpdate StatisticsTableCaddy = _CswNbtResources.makeCswTableUpdate("CswNbtStatisticsEntryNbt", "Statistics"); DataTable StatisticsTable = StatisticsTableCaddy.getEmptyTable(); DataRow NewStatisticsRow = StatisticsTable.NewRow(); NewStatisticsRow["userid"] = CswNbtStatisticsEntry.UserId.PrimaryKey; NewStatisticsRow["username"] = CswNbtStatisticsEntry.UserName; NewStatisticsRow["logindate"] = CswNbtStatisticsEntry.LoginDate.ToString(); NewStatisticsRow["logoutdate"] = DateTime.Now.ToString(); NewStatisticsRow["userloggedout"] = CswConvert.ToDbVal(CswNbtStatisticsEntry.Stats_LoggedOut); // Statistics on Actions NewStatisticsRow["count_actionloads"] = CswNbtStatisticsEntry.Stats_count_actionloads.ToString(); NewStatisticsRow["count_multiedit"] = CswNbtStatisticsEntry.Stats_count_multiedit.ToString(); NewStatisticsRow["count_reportruns"] = CswNbtStatisticsEntry.Stats_count_reportruns.ToString(); // Statistics on Views NewStatisticsRow["count_viewloads"] = CswNbtStatisticsEntry.Stats_count_viewloads.ToString(); NewStatisticsRow["count_viewsedited"] = CswNbtStatisticsEntry.Stats_count_viewsedited.ToString(); NewStatisticsRow["count_searches"] = CswNbtStatisticsEntry.Stats_count_searches.ToString(); NewStatisticsRow["count_viewfiltermods"] = CswNbtStatisticsEntry.Stats_count_viewfiltermod.ToString(); // Statistics on Nodes NewStatisticsRow["count_nodessaved"] = CswNbtStatisticsEntry.Stats_count_nodessaved.ToString(); NewStatisticsRow["count_nodesadded"] = CswNbtStatisticsEntry.Stats_count_nodesadded.ToString(); NewStatisticsRow["count_nodescopied"] = CswNbtStatisticsEntry.Stats_count_nodescopied.ToString(); NewStatisticsRow["count_nodesdeleted"] = CswNbtStatisticsEntry.Stats_count_nodesdeleted.ToString(); // Statistics on Page Lifecycle NewStatisticsRow["count_lifecycles"] = CswNbtStatisticsEntry.Stats_servertime_count.ToString(); NewStatisticsRow["average_servertime"] = (CswNbtStatisticsEntry.Stats_servertime_total / CswNbtStatisticsEntry.Stats_servertime_count).ToString(); NewStatisticsRow["count_errors"] = CswNbtStatisticsEntry.Stats_errors.ToString(); StatisticsTable.Rows.Add(NewStatisticsRow); Int32 StatisticsId = CswConvert.ToInt32(NewStatisticsRow["statisticsid"]); StatisticsTableCaddy.update(StatisticsTable); // Store views used: CswTableUpdate StatisticsViewsTableCaddy = _CswNbtResources.makeCswTableUpdate("CswNbtStatisticsEntryNbt", "Statistics_Views"); DataTable StatisticsViewsTable = StatisticsViewsTableCaddy.getEmptyTable(); foreach (string ViewId in CswNbtStatisticsEntry.ViewsEdited.Keys) { _makeNewStatisticsViewsRow(StatisticsViewsTable, StatisticsId, new CswNbtViewId(CswConvert.ToInt32(ViewId)), CswConvert.ToInt32(CswNbtStatisticsEntry.ViewsEdited[ViewId]), "edit"); } foreach (string ViewId in CswNbtStatisticsEntry.ViewsMultiEdited.Keys) { _makeNewStatisticsViewsRow(StatisticsViewsTable, StatisticsId, new CswNbtViewId(CswConvert.ToInt32(ViewId)), CswConvert.ToInt32(CswNbtStatisticsEntry.ViewsMultiEdited[ViewId]), "multiedit"); } foreach (string ViewId in CswNbtStatisticsEntry.ViewsLoaded.Keys) { _makeNewStatisticsViewsRow(StatisticsViewsTable, StatisticsId, new CswNbtViewId(CswConvert.ToInt32(ViewId)), CswConvert.ToInt32(CswNbtStatisticsEntry.ViewsLoaded[ViewId]), "load"); } StatisticsViewsTableCaddy.update(StatisticsViewsTable); // Store search properties and View Filter Modifications CswTableUpdate StatisticsSearchesTableCaddy = _CswNbtResources.makeCswTableUpdate("CswNbtStatisticsEntryNbt", "Statistics_Searches"); DataTable StatisticsSearchesTable = StatisticsSearchesTableCaddy.getEmptyTable(); foreach (string NodeTypePropId in CswNbtStatisticsEntry.NodeTypePropsSearched.Keys) { _makeNewStatisticsSearchesRow(StatisticsSearchesTable, StatisticsId, CswConvert.ToInt32(NodeTypePropId), Int32.MinValue, CswConvert.ToInt32(CswNbtStatisticsEntry.NodeTypePropsSearched[NodeTypePropId]), "load"); } foreach (string ObjectClassPropId in CswNbtStatisticsEntry.ObjectClassPropsSearched.Keys) { _makeNewStatisticsSearchesRow(StatisticsSearchesTable, StatisticsId, Int32.MinValue, CswConvert.ToInt32(ObjectClassPropId), CswConvert.ToInt32(CswNbtStatisticsEntry.ObjectClassPropsSearched[ObjectClassPropId]), "load"); } foreach (string NodeTypePropId in CswNbtStatisticsEntry.NodeTypePropsFilterMod.Keys) { _makeNewStatisticsSearchesRow(StatisticsSearchesTable, StatisticsId, CswConvert.ToInt32(NodeTypePropId), Int32.MinValue, CswConvert.ToInt32(CswNbtStatisticsEntry.NodeTypePropsFilterMod[NodeTypePropId]), "modify"); } foreach (string ObjectClassPropId in CswNbtStatisticsEntry.ObjectClassPropsFilterMod.Keys) { _makeNewStatisticsSearchesRow(StatisticsSearchesTable, StatisticsId, Int32.MinValue, CswConvert.ToInt32(ObjectClassPropId), CswConvert.ToInt32(CswNbtStatisticsEntry.ObjectClassPropsFilterMod[ObjectClassPropId]), "modify"); } StatisticsSearchesTableCaddy.update(StatisticsSearchesTable); // Store node object classes: CswTableUpdate StatisticsNodeTypesTableCaddy = _CswNbtResources.makeCswTableUpdate("CswNbtStatisticsEntryNbt", "Statistics_NodeTypes"); DataTable StatisticsNodeTypesTable = StatisticsNodeTypesTableCaddy.getEmptyTable(); foreach (string NodeTypeId in CswNbtStatisticsEntry.NodeTypesSaved.Keys) { _makeNewStatisticsNodeTypesRow(StatisticsNodeTypesTable, StatisticsId, CswConvert.ToInt32(NodeTypeId), CswConvert.ToInt32(CswNbtStatisticsEntry.NodeTypesSaved[NodeTypeId]), "save"); } foreach (string NodeTypeId in CswNbtStatisticsEntry.NodeTypesCopied.Keys) { _makeNewStatisticsNodeTypesRow(StatisticsNodeTypesTable, StatisticsId, CswConvert.ToInt32(NodeTypeId), CswConvert.ToInt32(CswNbtStatisticsEntry.NodeTypesCopied[NodeTypeId]), "copy"); } foreach (string NodeTypeId in CswNbtStatisticsEntry.NodeTypesDeleted.Keys) { _makeNewStatisticsNodeTypesRow(StatisticsNodeTypesTable, StatisticsId, CswConvert.ToInt32(NodeTypeId), CswConvert.ToInt32(CswNbtStatisticsEntry.NodeTypesDeleted[NodeTypeId]), "delete"); } foreach (string NodeTypeId in CswNbtStatisticsEntry.NodeTypesAdded.Keys) { _makeNewStatisticsNodeTypesRow(StatisticsNodeTypesTable, StatisticsId, CswConvert.ToInt32(NodeTypeId), CswConvert.ToInt32(CswNbtStatisticsEntry.NodeTypesAdded[NodeTypeId]), "add"); } StatisticsNodeTypesTableCaddy.update(StatisticsNodeTypesTable); // Store reports: CswTableUpdate StatisticsReportsTableCaddy = _CswNbtResources.makeCswTableUpdate("CswNbtStatisticsEntryNbt", "Statistics_Reports"); DataTable StatisticsReportsTable = StatisticsReportsTableCaddy.getEmptyTable(); foreach (string ReportId in CswNbtStatisticsEntry.ReportsLoaded.Keys) { _makeNewStatisticsReportsRow(StatisticsReportsTable, StatisticsId, CswConvert.ToInt32(ReportId), CswConvert.ToInt32(CswNbtStatisticsEntry.ReportsLoaded[ReportId]), "load"); } StatisticsReportsTableCaddy.update(StatisticsReportsTable); // Store actions: CswTableUpdate StatisticsActionsTableCaddy = _CswNbtResources.makeCswTableUpdate("CswNbtStatisticsEntryNbt", "Statistics_Actions"); DataTable StatisticsActionsTable = StatisticsActionsTableCaddy.getEmptyTable(); foreach (string ActionId in CswNbtStatisticsEntry.ActionsLoaded.Keys) { _makeNewStatisticsActionsRow(StatisticsActionsTable, StatisticsId, CswConvert.ToInt32(ActionId), CswConvert.ToInt32(CswNbtStatisticsEntry.ActionsLoaded[ActionId]), "load"); } StatisticsActionsTableCaddy.update(StatisticsActionsTable); CswNbtStatisticsEntry.ClearStatistics(); } } }