} // _setPropertyValuesFromObjectClass() public Collection <CswNbtObjClassDesignNodeTypeProp> getPropNodes() { Collection <CswNbtObjClassDesignNodeTypeProp> ret = new Collection <CswNbtObjClassDesignNodeTypeProp>(); CswNbtMetaDataObjectClass DesignPropOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.DesignNodeTypePropClass); CswNbtMetaDataObjectClassProp NtpNodeTypeOCP = DesignPropOC.getObjectClassProp(CswNbtObjClassDesignNodeTypeProp.PropertyName.NodeTypeValue); CswNbtView PropsView = new CswNbtView(_CswNbtResources); CswNbtViewRelationship ocRel = PropsView.AddViewRelationship(this.ObjectClass, false); ocRel.NodeIdsToFilterIn.Add(this.NodeId); PropsView.AddViewRelationship(ocRel, CswEnumNbtViewPropOwnerType.Second, NtpNodeTypeOCP, false); ICswNbtTree PropsTree = _CswNbtResources.Trees.getTreeFromView(PropsView, false, true, true); for (Int32 nt = 0; nt < PropsTree.getChildNodeCount(); nt++) { PropsTree.goToNthChild(nt); for (Int32 p = 0; p < PropsTree.getChildNodeCount(); p++) { PropsTree.goToNthChild(p); ret.Add(PropsTree.getCurrentNode()); PropsTree.goToParentNode(); } PropsTree.goToParentNode(); } // for( Int32 nt = 0; nt < PropsTree.getChildNodeCount(); nt++ ) return(ret); } // PropNodes()
public override void update() { List<CswNbtView> ReportViews = _CswNbtSchemaModTrnsctn.restoreViews( "Reports" ); foreach( CswNbtView ReportView in ReportViews ) { if( ReportView.Visibility != CswEnumNbtViewVisibility.Property ) { ReportView.Root.ChildRelationships.Clear(); CswNbtMetaDataObjectClass ReportGroupOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ReportGroupClass ); CswNbtViewRelationship ReportGroupVR = ReportView.AddViewRelationship( ReportGroupOC, IncludeDefaultFilters: false ); CswNbtMetaDataObjectClass ReportOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ReportClass ); CswNbtMetaDataObjectClassProp ReportGroupOCP = ReportOC.getObjectClassProp( CswNbtObjClassReport.PropertyName.ReportGroup ); ReportView.AddViewRelationship( ReportGroupVR, CswEnumNbtViewPropOwnerType.Second, ReportGroupOCP, false ); ReportView.save(); } } List<CswNbtView> MailReportViews = _CswNbtSchemaModTrnsctn.restoreViews( "Mail Reports" ); foreach( CswNbtView MailReportView in MailReportViews ) { _updateMailReportView( MailReportView ); } List<CswNbtView> MailReportFEViews = _CswNbtSchemaModTrnsctn.restoreViews( "Mail Reports (FE)" ); foreach( CswNbtView MailReportView in MailReportFEViews ) { _updateMailReportView( MailReportView ); } List<CswNbtView> MailReportIMCSViews = _CswNbtSchemaModTrnsctn.restoreViews( "Mail Reports (IMCS)" ); foreach( CswNbtView MailReportView in MailReportIMCSViews ) { _updateMailReportView( MailReportView ); } } // update()
public override void update() { CswNbtMetaDataObjectClass ContainerOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ContainerClass ); CswNbtMetaDataObjectClassProp SizeOCP = ContainerOC.getObjectClassProp( CswNbtObjClassContainer.PropertyName.Size ); // To be compatible with case 27330, remove 'Size' from Container layout by default if( _CswNbtSchemaModTrnsctn.isMaster() ) { foreach( CswNbtMetaDataNodeTypeProp SizeNTP in SizeOCP.getNodeTypeProps() ) { SizeNTP.removeFromAllLayouts(); } } // To resolve case 30647, clear out .Hidden flag on 'Size' foreach( CswNbtMetaDataNodeTypeProp SizeNTP in SizeOCP.getNodeTypeProps() ) { SizeNTP.Hidden = false; foreach( CswNbtObjClassContainer ContainerNode in ContainerOC.getNodes( false, true ) ) { ContainerNode.Size.setHidden( false, true ); ContainerNode.postChanges( false ); } } } // update()
public override void update() { CswNbtMetaDataObjectClass ContainerOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ContainerClass ); CswNbtMetaDataObjectClassProp RequestOCP = ContainerOC.getObjectClassProp( "Request" ); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( RequestOCP, CswEnumNbtObjectClassPropAttributes.statictext, "Request" ); // This is a placeholder script that does nothing. } // update()
public override void update() { CswNbtMetaDataObjectClass reportOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ReportClass ); CswNbtMetaDataObjectClassProp instructionsOCP = reportOC.getObjectClassProp( CswNbtObjClassReport.PropertyName.Instructions ); CswNbtMetaDataObjectClassProp sqlOCP = reportOC.getObjectClassProp( CswNbtObjClassReport.PropertyName.Sql ); foreach( CswNbtMetaDataNodeTypeProp instructionsNTP in instructionsOCP.getNodeTypeProps() ) { instructionsNTP.TextAreaColumns = 65; instructionsNTP.TextAreaRows = 8; } foreach( CswNbtMetaDataNodeTypeProp sqlNTP in sqlOCP.getNodeTypeProps() ) { sqlNTP.HelpText = ""; } //string txt = "To create a parameterized sql report wrap the parameter name(s) in {} brackets.\n\n"; //txt += "Enter a User property name such as 'username' to have the parameter automatically filled in with the current users value for that property. You may also use the keywords 'nodeid' or 'userid' to have the primary key of the current user filled in as the value for that parameter."; string txt = @"To create a parameterized report, enclose the name of the property in {}. For example: and datecolumn < '{Date}' will prompt the user to enter a Date. Parameters that match properties on the current User will be automatically filled in. For example: {Username} - The username of the user running the report. {Role} - The role of the user running the report. {userid} - The primary key of the user running the report."; foreach( CswNbtObjClassReport reportNode in reportOC.getNodes( false, true, false, true ) ) { reportNode.Instructions.Text = txt; reportNode.postChanges( false ); } } // update()
public override void update() { // Add nodetypes for new object classes CswNbtMetaDataObjectClass RegListMemberOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.RegulatoryListMemberClass ); CswNbtMetaDataObjectClassProp RegListMemberChemicalOCP = RegListMemberOC.getObjectClassProp( CswNbtObjClassRegulatoryListMember.PropertyName.Chemical ); CswNbtMetaDataNodeType RegListMemberNT = _CswNbtSchemaModTrnsctn.MetaData.makeNewNodeTypeDeprecated( new CswNbtWcfMetaDataModel.NodeType( RegListMemberOC ) { NodeTypeName = "Regulatory List Member", Category = "Materials", SearchDeferObjectClassPropId = RegListMemberChemicalOCP.ObjectClassPropId } ); RegListMemberNT.setNameTemplateText( CswNbtMetaData.MakeTemplateEntry( CswNbtObjClassRegulatoryListMember.PropertyName.Chemical ) + "-" + CswNbtMetaData.MakeTemplateEntry( CswNbtObjClassRegulatoryListMember.PropertyName.RegulatoryList ) ); RegListMemberNT.getNodeTypePropByObjectClassProp( CswNbtObjClassRegulatoryListMember.PropertyName.ByUser ).removeFromLayout( CswEnumNbtLayoutType.Add ); CswNbtMetaDataObjectClass RegListCasNoOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.RegulatoryListCasNoClass ); CswNbtMetaDataObjectClassProp RegListCasNoRegListOCP = RegListCasNoOC.getObjectClassProp( CswNbtObjClassRegulatoryListCasNo.PropertyName.RegulatoryList ); CswNbtMetaDataNodeType RegListCasNoNT = _CswNbtSchemaModTrnsctn.MetaData.makeNewNodeTypeDeprecated( new CswNbtWcfMetaDataModel.NodeType( RegListCasNoOC ) { NodeTypeName = "Regulatory List CAS", Category = "Materials", SearchDeferObjectClassPropId = RegListCasNoRegListOCP.ObjectClassPropId } ); RegListCasNoNT.setNameTemplateText( CswNbtMetaData.MakeTemplateEntry( CswNbtObjClassRegulatoryListCasNo.PropertyName.RegulatoryList ) + "-" + CswNbtMetaData.MakeTemplateEntry( CswNbtObjClassRegulatoryListCasNo.PropertyName.CASNo ) ); // Grant permissions to cispro_admin CswNbtObjClassRole CISProAdminRole = _CswNbtSchemaModTrnsctn.Nodes.makeRoleNodeFromRoleName( "CISPro_Admin" ); CswEnumNbtNodeTypePermission[] AllPerms = new CswEnumNbtNodeTypePermission[] { CswEnumNbtNodeTypePermission.Create, CswEnumNbtNodeTypePermission.Delete, CswEnumNbtNodeTypePermission.Edit, CswEnumNbtNodeTypePermission.View }; _CswNbtSchemaModTrnsctn.Permit.set( AllPerms, RegListMemberNT, CISProAdminRole, true ); _CswNbtSchemaModTrnsctn.Permit.set( AllPerms, RegListCasNoNT, CISProAdminRole, true ); } // update()
public override void update() { CswNbtMetaDataObjectClass ContainerOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ContainerClass ); CswNbtMetaDataObjectClassProp QuantityOCP = ContainerOC.getObjectClassProp( CswNbtObjClassContainer.PropertyName.Quantity ); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( QuantityOCP, CswEnumNbtObjectClassPropAttributes.isrequired, true ); } // update()
public override void update() { CswNbtMetaDataObjectClass ContDispTransOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.ContainerDispenseTransactionClass ); CswNbtMetaDataObjectClassProp DispensedDate = ContDispTransOc.getObjectClassProp( CswNbtObjClassContainerDispenseTransaction.DispensedDatePropertyName ); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( DispensedDate, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.extended, ChemSW.Nbt.PropTypes.CswNbtNodePropDateTime.DateDisplayMode.DateTime.ToString() ); CswNbtMetaDataNodeType ContDispTransNt = ContDispTransOc.getLatestVersionNodeTypes().FirstOrDefault(); if( null == ContDispTransNt ) { CswStatusMessage Msg = new CswStatusMessage { AppType = AppType.SchemUpdt, ContentType = ContentType.Error }; Msg.Attributes.Add( Log.LegalAttribute.escoteric_message, "Could not get a Container Dispense Transaction NodeType" ); _CswNbtSchemaModTrnsctn.CswLogger.send( Msg ); } else { CswNbtView GridView = _CswNbtSchemaModTrnsctn.restoreView( "Container Container Dispense Transactions Grid Property View" ); if( GridView != null ) { GridView.ViewName = "Container Dispense Transactions"; GridView.save(); } } }//Update()
public override void update() { CswNbtMetaDataObjectClass RequestOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.RequestClass ); CswNbtMetaDataObjectClassProp DoomedRequestInventoryGroupOcp = RequestOc.getObjectClassProp( "Inventory Group" ); if( null != DoomedRequestInventoryGroupOcp ) { _CswNbtSchemaModTrnsctn.MetaData.DeleteObjectClassProp( DoomedRequestInventoryGroupOcp, DeleteNodeTypeProps: true ); } CswNbtMetaDataObjectClass RequestItemOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.RequestItemClass ); CswNbtMetaDataObjectClass InventoryGroupOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.InventoryGroupClass ); CswNbtMetaDataObjectClassProp DoomedItemInventoryGroupOcp = RequestItemOc.getObjectClassProp( CswNbtObjClassRequestItem.PropertyName.InventoryGroup ); _CswNbtSchemaModTrnsctn.MetaData.DeleteObjectClassProp( DoomedItemInventoryGroupOcp, DeleteNodeTypeProps: true ); _CswNbtSchemaModTrnsctn.createObjectClassProp( new CswNbtWcfMetaDataModel.ObjectClassProp( RequestItemOc ) { PropName = CswNbtObjClassRequestItem.PropertyName.InventoryGroup, FieldType = CswNbtMetaDataFieldType.NbtFieldType.Relationship, IsFk = true, FkType = NbtViewRelatedIdType.ObjectClassId.ToString(), FkValue = InventoryGroupOc.ObjectClassId, IsRequired = true, SetValOnAdd = true } ); }//Update()
protected override void OnEnable() { //case 26717 - show the following... // Inspector Manager role and user // Inspector role and user // All views in categories Lab Safety, Lab Safety (Demo) and Inspections _CswNbtResources.Modules.ToggleRoleNodes(false, "inspector"); _CswNbtResources.Modules.ToggleRoleNodes(false, "inspection manager"); _CswNbtResources.Modules.ToggleUserNodes(false, "inspector"); _CswNbtResources.Modules.ToggleUserNodes(false, "inspectmgr"); _CswNbtResources.Modules.ToggleViewsInCategory(false, "Lab Safety (demo)", CswEnumNbtViewVisibility.Global); _CswNbtResources.Modules.ToggleViewsInCategory(false, "Inspections", CswEnumNbtViewVisibility.Global); _CswNbtResources.Modules.ToggleViewsInCategory(false, "Lab Safety", CswEnumNbtViewVisibility.Global); CswNbtMetaDataObjectClass reportOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.ReportClass); CswNbtMetaDataObjectClassProp reportNameOCP = reportOC.getObjectClassProp(CswNbtObjClassReport.PropertyName.ReportName); CswNbtNode deficientInspectionsNode = _findNode("Deficient Inspections", reportOC, reportNameOCP); if (null != deficientInspectionsNode) { deficientInspectionsNode.Hidden = false; deficientInspectionsNode.postChanges(false); } //Case 28117 - show Future Scheduling _CswNbtResources.Modules.ToggleAction(true, CswEnumNbtActionName.Future_Scheduling); _CswNbtResources.Modules.ToggleScheduledRule(CswEnumNbtScheduleRuleNames.UpdtInspection, Disabled: false); //Mail Reports _CswNbtResources.Modules.ToggleNode(false, "Lab 1 Deficiencies Mail Report", CswEnumNbtObjectClass.MailReportClass); _CswNbtResources.Modules.ToggleNode(false, "Lab Safety Checklist (demo) Action Required Notification", CswEnumNbtObjectClass.MailReportClass); }
/// <summary> /// The actual update call /// </summary> public override void update() { CswNbtMetaDataObjectClass EquipmentType = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass(CswEnumNbtObjectClass.EquipmentTypeClass); CswNbtMetaDataObjectClassProp NameOCP = EquipmentType.getObjectClassProp(CswNbtObjClassEquipmentType.PropertyName.TypeName); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp(NameOCP, CswEnumNbtObjectClassPropAttributes.isunique, true); }
public Collection<string> getCASNumbers() { Collection<string> ret = new Collection<string>(); CswNbtMetaDataObjectClass RegListCasNoOC = _CswNbtResources.MetaData.getObjectClass( CswEnumNbtObjectClass.RegulatoryListCasNoClass ); CswNbtMetaDataObjectClassProp RegListCasNoCasNoOCP = RegListCasNoOC.getObjectClassProp( CswNbtObjClassRegulatoryListCasNo.PropertyName.CASNo ); CswNbtMetaDataObjectClassProp RegListCasNoRegListOCP = RegListCasNoOC.getObjectClassProp( CswNbtObjClassRegulatoryListCasNo.PropertyName.RegulatoryList ); CswNbtView View = new CswNbtView( _CswNbtResources ); View.ViewName = "Reglist_getCASNumbers"; CswNbtViewRelationship casnoRel = View.AddViewRelationship( RegListCasNoOC, false ); View.AddViewProperty( casnoRel, RegListCasNoCasNoOCP ); View.AddViewPropertyAndFilter( casnoRel, RegListCasNoRegListOCP, SubFieldName: CswNbtFieldTypeRuleRelationship.SubFieldName.NodeID, FilterMode: CswEnumNbtFilterMode.Equals, Value: this.NodeId.PrimaryKey.ToString() ); ICswNbtTree Tree = _CswNbtResources.Trees.getTreeFromView( View, RequireViewPermissions: false, IncludeSystemNodes: true, IncludeHiddenNodes: true ); for( Int32 i = 0; i < Tree.getChildNodeCount(); i++ ) { Tree.goToNthChild( i ); CswNbtTreeNodeProp casnoTreeProp = Tree.getChildNodePropsOfNode().FirstOrDefault( p => p.ObjectClassPropName == RegListCasNoCasNoOCP.PropName ); if( null != casnoTreeProp ) { ret.Add( casnoTreeProp[( (CswNbtFieldTypeRuleCASNo) RegListCasNoCasNoOCP.getFieldTypeRule() ).TextSubField.Column] ); } Tree.goToParentNode(); } return ret; } // getCASNumbers()
public override void update() { // add some objclass calls CswNbtMetaDataObjectClassProp locCodeOcp = _CswNbtSchemaModTrnsctn.createObjectClassProp( CswNbtMetaDataObjectClass.NbtObjectClass.LocationClass, "Location Code", CswNbtMetaDataFieldType.NbtFieldType.Text, IsUnique: true ); CswNbtMetaDataObjectClassProp allowInvOcp = _CswNbtSchemaModTrnsctn.createObjectClassProp( CswNbtMetaDataObjectClass.NbtObjectClass.LocationClass, "Allow Inventory", CswNbtMetaDataFieldType.NbtFieldType.Logical ); CswNbtMetaDataObjectClassProp storCompatOcp = _CswNbtSchemaModTrnsctn.createObjectClassProp( CswNbtMetaDataObjectClass.NbtObjectClass.LocationClass, "Storage Compatability", CswNbtMetaDataFieldType.NbtFieldType.ImageList ); CswDelimitedString listOpts = new CswDelimitedString( '\n' ); listOpts.FromArray( new string[] { "None", "Inorganic Acids", "Organic Acids", "Bases", "Oxidizing Inorganic Acids", "Oxidizers", "Toxics", "Flammables" } ); // storCompatOcp.ListOptions = listOpts.ToString(); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( storCompatOcp, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.listoptions, listOpts.ToString() ); CswDelimitedString valOpts = new CswDelimitedString( '\n' ); valOpts.FromArray( new string[] { "Images/cispro/0w.gif", "Images/cispro/1o.gif", "Images/cispro/2y.gif", "Images/cispro/3g.gif", "Images/cispro/4b.gif", "Images/cispro/5l.gif", "Images/cispro/6p.gif", "Images/cispro/7r.gif" } ); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( storCompatOcp, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.valueoptions, valOpts.ToString() ); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( storCompatOcp, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.textarearows, "32" ); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( storCompatOcp, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.textareacols, "32" ); }//Update()
} // PropNodes() public Collection <CswNbtObjClassDesignNodeTypeTab> getTabNodes() { Collection <CswNbtObjClassDesignNodeTypeTab> ret = new Collection <CswNbtObjClassDesignNodeTypeTab>(); CswNbtMetaDataObjectClass DesignTabOCP = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.DesignNodeTypeTabClass); CswNbtMetaDataObjectClassProp NttNodeTypeOCP = DesignTabOCP.getObjectClassProp(CswNbtObjClassDesignNodeTypeTab.PropertyName.NodeTypeValue); CswNbtView TabsView = new CswNbtView(_CswNbtResources); CswNbtViewRelationship ocRel = TabsView.AddViewRelationship(this.ObjectClass, false); ocRel.NodeIdsToFilterIn.Add(this.NodeId); TabsView.AddViewRelationship(ocRel, CswEnumNbtViewPropOwnerType.Second, NttNodeTypeOCP, false); ICswNbtTree TabsTree = _CswNbtResources.Trees.getTreeFromView(TabsView, false, true, true); for (Int32 nt = 0; nt < TabsTree.getChildNodeCount(); nt++) { TabsTree.goToNthChild(nt); for (Int32 t = 0; t < TabsTree.getChildNodeCount(); t++) { TabsTree.goToNthChild(t); ret.Add(TabsTree.getCurrentNode()); TabsTree.goToParentNode(); } TabsTree.goToParentNode(); } // for( Int32 nt = 0; nt < TabsTree.getChildNodeCount(); nt++ ) return(ret); } // TabNodes()
public override void update() { #region UPDATE VIEWS CswNbtMetaDataObjectClass userOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.UserClass ); CswNbtMetaDataObjectClassProp archivedOCP = userOC.getObjectClassProp( CswNbtObjClassUser.PropertyName.Archived ); foreach( CswNbtMetaDataNodeTypeProp relationshipProp in _CswNbtSchemaModTrnsctn.MetaData.getNodeTypeProps( CswNbtMetaDataFieldType.NbtFieldType.Relationship ) ) { if( relationshipProp.IsUserRelationship() ) { CswNbtView userView = _CswNbtSchemaModTrnsctn.ViewSelect.restoreView( relationshipProp.ViewId ); if( false == userView.IsEmpty() ) { CswNbtViewRelationship parent = userView.Root.ChildRelationships[0]; bool filterExists; bool viewPropExists; CswNbtViewProperty archivedVP = _viewPropAndFilterExists( out filterExists, out viewPropExists, userView, archivedOCP, CswNbtPropFilterSql.PropertyFilterMode.NotEquals, Tristate.True.ToString() ); if( false == viewPropExists ) //the view prop isn't there, add it with the filter { userView.AddViewPropertyAndFilter( parent, archivedOCP, FilterMode: CswNbtPropFilterSql.PropertyFilterMode.NotEquals, Value: Tristate.True.ToString() ); } else if( viewPropExists && false == filterExists ) //the view prop is there, but with no filter { userView.AddViewPropertyFilter( archivedVP, FilterMode: CswNbtPropFilterSql.PropertyFilterMode.NotEquals, Value: Tristate.True.ToString() ); } userView.save(); } } } #endregion }//Update()
private CswCommaDelimitedString _getMaterialPKsForEP(CswPrimaryKey EPId) { CswCommaDelimitedString EPMaterialPks = new CswCommaDelimitedString(); CswNbtMetaDataObjectClass ManufacturerEquivalentPartOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.ManufacturerEquivalentPartClass); CswNbtMetaDataObjectClassProp EPOCP = ManufacturerEquivalentPartOC.getObjectClassProp(CswNbtObjClassManufacturerEquivalentPart.PropertyName.EnterprisePart); CswNbtMetaDataObjectClassProp MaterialOCP = ManufacturerEquivalentPartOC.getObjectClassProp(CswNbtObjClassManufacturerEquivalentPart.PropertyName.Material); CswNbtView EPMatsView = new CswNbtView(_CswNbtResources); EPMatsView.ViewName = "Materials under " + EPId; CswNbtViewRelationship MEPVR = EPMatsView.AddViewRelationship(ManufacturerEquivalentPartOC, false); EPMatsView.AddViewPropertyAndFilter(MEPVR, EPOCP, SubFieldName: CswEnumNbtSubFieldName.NodeID, Value: EPId.PrimaryKey.ToString()); CswNbtViewRelationship MatVR = EPMatsView.AddViewRelationship(MEPVR, CswEnumNbtViewPropOwnerType.First, MaterialOCP, false); ICswNbtTree EPMatsTree = _CswNbtResources.Trees.getTreeFromView(EPMatsView, false, true, true); for (int i = 0; i < EPMatsTree.getChildNodeCount(); i++) { EPMatsTree.goToNthChild(i); //EP's MEPs if (EPMatsTree.getChildNodeCount() > 0) { EPMatsTree.goToNthChild(0); //MEP's Material EPMaterialPks.Add(EPMatsTree.getNodeIdForCurrentPosition().PrimaryKey.ToString()); EPMatsTree.goToParentNode(); } EPMatsTree.goToParentNode(); } return(EPMaterialPks); }
}//Update() /// <summary> /// Helper method to determine if a view property exists with a given filter. Returns the view property if it exists. /// </summary> /// <param name="filterExists">If the filter exists</param> /// <param name="viewPropExists">If the given prop is in the view</param> /// <param name="view">The view to check</param> /// <param name="prop">The property to check</param> /// <returns>The view property (null if the prop doesn't exist)</returns> private CswNbtViewProperty _viewPropAndFilterExists( out bool filterExists, out bool viewPropExists, CswNbtView view, CswNbtMetaDataObjectClassProp prop, CswNbtPropFilterSql.PropertyFilterMode filterMode, string value ) { CswNbtViewProperty ret = null; filterExists = false; viewPropExists = false; foreach( CswNbtViewProperty viewProp in view.getOrderedViewProps( false ) ) { foreach( CswNbtViewPropertyFilter existingFilter in viewProp.Filters ) { if( viewProp.ObjectClassPropId.Equals( prop.ObjectClassPropId ) ) { viewPropExists = true; if( existingFilter.FilterMode.Equals( filterMode ) && existingFilter.Value.Equals( value ) ) { filterExists = true; ret = viewProp; } } } } return ret; }
public IEnumerable <CswPrimaryKey> getContainersInGroup() { CswNbtView ContainersInGroupView = new CswNbtView(_CswNbtResources); ContainersInGroupView.ViewName = "ContainersInGroup"; CswNbtMetaDataObjectClass ContainerOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.ContainerClass); CswNbtViewRelationship Rel1 = ContainersInGroupView.AddViewRelationship(ContainerOC, true); CswNbtMetaDataObjectClassProp ContainerGroupOCP = ContainerOC.getObjectClassProp(CswNbtObjClassContainer.PropertyName.ContainerGroup); CswNbtViewProperty Prop2 = ContainersInGroupView.AddViewProperty(Rel1, ContainerGroupOCP); CswNbtViewPropertyFilter Filt3 = ContainersInGroupView.AddViewPropertyFilter(Prop2, CswEnumNbtFilterConjunction.And, CswEnumNbtFilterResultMode.Hide, CswNbtFieldTypeRuleRelationship.SubFieldName.NodeID, CswEnumNbtFilterMode.Equals, this.NodeId.PrimaryKey.ToString(), false, false); Collection <CswPrimaryKey> _ContainerGroupNodePks = new Collection <CswPrimaryKey>(); ICswNbtTree ContainersInGroupTree = _CswNbtResources.Trees.getTreeFromView(ContainersInGroupView, false, true, true); ContainersInGroupTree.goToRoot(); for (int i = 0; i < ContainersInGroupTree.getChildNodeCount(); i++) { ContainersInGroupTree.goToNthChild(i); _ContainerGroupNodePks.Add(ContainersInGroupTree.getNodeIdForCurrentPosition()); ContainersInGroupTree.goToParentNode(); } return(_ContainerGroupNodePks); }
public override void update() { CswNbtMetaDataObjectClass MEPOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ManufacturerEquivalentPartClass ); CswNbtMetaDataObjectClass ManufacturerOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ManufacturerClass ); if( null != ManufacturerOC ) { CswNbtMetaDataObjectClassProp MaterialOCP = MEPOC.getObjectClassProp( "Material" ); if( null != MaterialOCP ) { _CswNbtSchemaModTrnsctn.MetaData.DeleteObjectClassProp( MaterialOCP, true ); } CswNbtMetaDataObjectClassProp ManufacturerOCP = MEPOC.getObjectClassProp( CswNbtObjClassManufacturerEquivalentPart.PropertyName.Manufacturer ); if( null != ManufacturerOCP ) { CswNbtView ManufacturerView = _CswNbtSchemaModTrnsctn.makeView(); CswNbtViewRelationship parent = ManufacturerView.AddViewRelationship( ManufacturerOC, true ); ManufacturerView.Visibility = CswEnumNbtViewVisibility.Property; ManufacturerView.ViewName = "Manufacturer"; _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( ManufacturerOCP, CswEnumNbtObjectClassPropAttributes.viewxml, ManufacturerView.ToString() ); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( ManufacturerOCP, CswEnumNbtObjectClassPropAttributes.fktype, CswEnumNbtViewRelatedIdType.ObjectClassId.ToString() ); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( ManufacturerOCP, CswEnumNbtObjectClassPropAttributes.fkvalue, ManufacturerOC.ObjectClassId.ToString() ); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( ManufacturerOCP, CswEnumNbtObjectClassPropAttributes.isrequired, true ); CswNbtMetaDataObjectClassProp EPOCP = MEPOC.getObjectClassProp( CswNbtObjClassManufacturerEquivalentPart.PropertyName.EnterprisePart ); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( EPOCP, CswEnumNbtObjectClassPropAttributes.isrequired, true ); foreach( CswNbtMetaDataNodeType MEPNT in MEPOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeProp ManufacturerNTP = MEPNT.getNodeTypePropByObjectClassProp( ManufacturerOCP ); ManufacturerNTP.DesignNode.syncFromObjectClassProp(); CswNbtMetaDataNodeTypeProp EPNTP = MEPNT.getNodeTypePropByObjectClassProp( EPOCP ); EPNTP.DesignNode.syncFromObjectClassProp(); } } _CswNbtSchemaModTrnsctn.createModuleObjectClassJunction( CswEnumNbtModuleName.MLM, MEPOC.ObjectClassId ); } } // update()
private void OnContainerScanPropChange( CswNbtNodeProp Prop, bool Creating ) { if( null != ContainerScan.Text ) { CswNbtMetaDataObjectClass ContainerOc = _CswNbtResources.MetaData.getObjectClass( CswEnumNbtObjectClass.ContainerClass ); CswNbtView ContainerView = new CswNbtView( _CswNbtResources ); CswNbtViewRelationship ContainerRel = ContainerView.AddViewRelationship( ContainerOc, false ); CswNbtMetaDataObjectClassProp BarcodeOcp = ContainerOc.getObjectClassProp( CswNbtObjClassContainer.PropertyName.Barcode ); ContainerView.AddViewPropertyAndFilter( ContainerRel, BarcodeOcp, ContainerScan.Text ); ICswNbtTree ContainerTree = _CswNbtResources.Trees.getTreeFromView( ContainerView, false, false, true ); if( ContainerTree.getChildNodeCount() > 0 ) { ContainerTree.goToNthChild( 0 ); CswNbtObjClassContainer ContainerNode = ContainerTree.getNodeForCurrentPosition(); Container.RelatedNodeId = ContainerNode.NodeId; } else { Container.RelatedNodeId = null; } } _setStatus(); }
public override void update() { CswNbtMetaDataObjectClass SizeOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.SizeClass ); CswNbtMetaDataObjectClassProp QeOcp = SizeOc.getObjectClassProp( CswNbtObjClassSize.QuantityEditablePropertyName ); _CswNbtSchemaModTrnsctn.MetaData.SetObjectClassPropDefaultValue( QeOcp, QeOcp.getFieldTypeRule().SubFields.Default.Name, Tristate.True ); }//Update()
private void OnLocationScanPropChange( CswNbtNodeProp Prop, bool Creating ) { if( null != LocationScan.Text ) { CswNbtMetaDataObjectClass LocationOc = _CswNbtResources.MetaData.getObjectClass( CswEnumNbtObjectClass.LocationClass ); CswNbtView LocationView = new CswNbtView( _CswNbtResources ); CswNbtViewRelationship LocationRel = LocationView.AddViewRelationship( LocationOc, false ); CswNbtMetaDataObjectClassProp BarcodeOcp = LocationOc.getObjectClassProp( CswNbtObjClassLocation.PropertyName.Barcode ); LocationView.AddViewPropertyAndFilter( LocationRel, BarcodeOcp, LocationScan.Text ); ICswNbtTree LocationTree = _CswNbtResources.Trees.getTreeFromView( LocationView, false, false, true ); if( LocationTree.getChildNodeCount() > 0 ) { LocationTree.goToNthChild( 0 ); CswNbtObjClassLocation LocationNode = LocationTree.getNodeForCurrentPosition(); Location.SelectedNodeId = LocationNode.NodeId; Location.RefreshNodeName(); } else { Location.SelectedNodeId = null; Location.CachedNodeName = String.Empty; Location.CachedPath = String.Empty; Location.CachedBarcode = String.Empty; } } _setStatus(); }
public override void update() { //add supplier and catalog number to size name template CswNbtMetaDataNodeType sizeNT = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( "Size" ); if( null != sizeNT ) { CswNbtMetaDataNodeTypeProp materialNTP = sizeNT.getNodeTypeProp( CswNbtObjClassSize.MaterialPropertyName ); CswNbtMetaDataObjectClass materialOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( materialNTP.FKValue ); CswNbtMetaDataObjectClassProp supplierOCP = materialOC.getObjectClassProp( CswNbtObjClassMaterial.SupplierPropertyName ); CswNbtMetaDataObjectClass sizeOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.SizeClass ); CswNbtMetaDataObjectClassProp materialOCP = sizeOC.getObjectClassProp( CswNbtObjClassSize.MaterialPropertyName ); CswNbtMetaDataNodeTypeTab sizeTab = _getTab( sizeNT, "Size", 1 ); CswNbtMetaDataNodeTypeProp sizeSupplierNTP = _CswNbtSchemaModTrnsctn.MetaData.makeNewProp( sizeNT, CswNbtMetaDataFieldType.NbtFieldType.PropertyReference, "Supplier", sizeTab.TabId ); sizeSupplierNTP.SetFK( NbtViewPropIdType.ObjectClassPropId.ToString(), materialOCP.PropId, NbtViewPropIdType.ObjectClassPropId.ToString(), supplierOCP.PropId ); string templateText = sizeNT.NameTemplateValue; templateText += CswNbtMetaData.MakeTemplateEntry( sizeSupplierNTP.PropName ); //add supplier (NTP) name to template templateText += " " + CswNbtMetaData.MakeTemplateEntry( CswNbtObjClassSize.CatalogNoPropertyName ); //add catalog number to name template sizeNT.setNameTemplateText( templateText ); } }//Update()
private CswNbtSchemaUpdateLayoutMgr.LayoutProp _vetLayoutOp(string PropName, bool DoNotTrack, CswEnumNbtLayoutType LayoutType = null) { LayoutType = LayoutType ?? _LayoutMgr.LayoutType; CswNbtMetaDataObjectClassProp Ocp = _LayoutMgr.ObjectClass.getObjectClassProp(PropName); if (null == Ocp) { throw new CswDniException("Cannot copy a property that is not an Object Class prop. Object Class Prop {" + PropName + "} was null."); } CswNbtSchemaUpdateLayoutMgr.LayoutProp Ret = new CswNbtSchemaUpdateLayoutMgr.LayoutProp(Ocp, LayoutType, ""); //I originally thought we could prevent copy/paste errors by tracking which props had been positioned where, but this turns out to be non trivial. //It's not a bad idea, but not worth the overhead to do correctly right now. //if ( _LayoutMgr.Props.Contains( Ret ) ) //{ // if ( DoNotTrack ) // { // _LayoutMgr.Props.Remove( Ret ); // } // else // { // throw new CswDniException( "This property has already been placed in this layout. Prop: {" + PropName + "}, LayoutType: {" + LayoutType + "}, Tab: {" + CurrentTabName + "}." ); // } //} //if ( false == DoNotTrack ) //{ // _LayoutMgr.Props.Add( Ret ); //} return(Ret); }
public CswNbtNode makeRoleNodeFromRoleName(string RoleName) { CswNbtNode RoleNode = null; CswNbtMetaDataObjectClass Role_ObjectClass = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.RoleClass); CswNbtMetaDataObjectClassProp RoleName_ObjectClassProp = Role_ObjectClass.getObjectClassProp(CswNbtObjClassRole.PropertyName.Name); // generate the view CswNbtView View = new CswNbtView(_CswNbtResources); View.ViewName = "CswNbtNodes.makeRoleNodeFromRoleName(" + RoleName + ")"; CswNbtViewRelationship RoleRelationship = View.AddViewRelationship(Role_ObjectClass, false); CswNbtViewProperty Prop = View.AddViewProperty(RoleRelationship, RoleName_ObjectClassProp); CswNbtViewPropertyFilter Filter = View.AddViewPropertyFilter(Prop, CswNbtFieldTypeRuleText.SubFieldName.Text, CswEnumNbtFilterMode.Equals, RoleName, false); // generate the tree ICswNbtTree UserTree = _CswNbtResources.Trees.getTreeFromView(View, false, true, IncludeHiddenNodes: true); // get user node UserTree.goToRoot(); if (UserTree.getChildNodeCount() > 0) { UserTree.goToNthChild(0); RoleNode = UserTree.getNodeForCurrentPosition(); } return(RoleNode); }
// This is a repeat of case 02F_Case30647. See case 31079. public override void update() { CswNbtMetaDataObjectClass ContainerOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ContainerClass ); CswNbtMetaDataObjectClassProp SizeOCP = ContainerOC.getObjectClassProp( CswNbtObjClassContainer.PropertyName.Size ); // To resolve case 30647, clear out .Hidden flag on 'Size' foreach( CswNbtMetaDataNodeTypeProp SizeNTP in SizeOCP.getNodeTypeProps() ) { SizeNTP.Hidden = false; } // getNodes() truncates!!!!!! //foreach( CswNbtObjClassContainer ContainerNode in ContainerOC.getNodes( false, true, false, true ) ) //{ // ContainerNode.Size.setHidden( value: false, SaveToDb: true ); // ContainerNode.postChanges( false ); //} _CswNbtSchemaModTrnsctn.execArbitraryPlatformNeutralSql( @"update jct_nodes_props set hidden = '0' where nodetypepropid in (select p.nodetypepropid from nodetype_props p join object_class_props op on p.objectclasspropid = op.objectclasspropid join object_class oc on op.objectclassid = oc.objectclassid where oc.objectclass = 'ContainerClass' and op.propname = 'Size') and hidden = '1'" ); } // update()
public override void update() { CswNbtMetaDataObjectClass ReceiptLotOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ReceiptLotClass ); if( null != ReceiptLotOC ) { CswNbtMetaDataObjectClassProp ReceiptLotNoOCP = _CswNbtSchemaModTrnsctn.createObjectClassProp( ReceiptLotOC, new CswNbtWcfMetaDataModel.ObjectClassProp { PropName = CswNbtObjClassReceiptLot.PropertyName.ReceiptLotNo, FieldType = CswEnumNbtFieldType.Sequence, SetValOnAdd = true, ServerManaged = true, } ); _CswNbtSchemaModTrnsctn.MetaData.makeMissingNodeTypeProps(); //if we don't do this, .setSequence( SequenceId ) throws an ORNI if( null != ReceiptLotNoOCP ) { int SequenceId = _CswNbtSchemaModTrnsctn.makeSequence( new CswSequenceName( "ReceiptLotNo" ), "RL", "", 6, 1 ); foreach( CswNbtMetaDataNodeType ReceiptLotNT in ReceiptLotOC.getNodeTypes() ) { ReceiptLotNT.addNameTemplateText( CswNbtObjClassReceiptLot.PropertyName.ReceiptLotNo ); ReceiptLotNT.getNodeTypePropByObjectClassProp( ReceiptLotNoOCP ).setSequence( SequenceId ); foreach( CswNbtObjClassReceiptLot ReceiptLot in ReceiptLotNT.getNodes( true, true ) ) { ReceiptLot.ReceiptLotNo.setSequenceValue(); ReceiptLot.postChanges( false ); } } } } } // update()
public override void update() { // Add graphics to storage compatibility property on Materials. CswNbtMetaDataObjectClass MaterialOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.MaterialClass ); CswNbtMetaDataObjectClassProp StorCompatOCP = MaterialOC.getObjectClassProp( CswNbtObjClassMaterial.StorageCompatibilityPropertyName ); CswDelimitedString ImageNames = new CswDelimitedString( '\n' ) { "0 - None", "1 - Inorganic Acids", "2 - Organic Acids", "3 - Bases", "4 - Oxidizing Inorganic Acids", "5 - Oxidizers", "6 - Toxics", "7 - Flammables" }; CswDelimitedString ImageUrls = new CswDelimitedString( '\n' ) { "/NbtWebApp/Images/cispro/0w.gif", "/NbtWebApp/Images/cispro/1o.gif", "/NbtWebApp/Images/cispro/2y.gif", "/NbtWebApp/Images/cispro/3g.gif", "/NbtWebApp/Images/cispro/4b.gif", "/NbtWebApp/Images/cispro/5l.gif", "/NbtWebApp/Images/cispro/6p.gif", "/NbtWebApp/Images/cispro/7r.gif" }; _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( StorCompatOCP, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.listoptions, ImageNames.ToString() ); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( StorCompatOCP, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.valueoptions, ImageUrls.ToString() ); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( StorCompatOCP, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.textarearows, 50 ); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( StorCompatOCP, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.textareacols, 50 ); }//Update()
public override void onPropertySetAddDefaultViewFilters(CswNbtViewRelationship ParentRelationship) { CswNbtMetaDataObjectClassProp RequestorOcp = ObjectClass.getObjectClassProp(PropertyName.Requestor); ParentRelationship.View.AddViewPropertyAndFilter(ParentRelationship, RequestorOcp, FilterMode: CswEnumNbtFilterMode.Equals, Value: "me", ShowInGrid: false); CswNbtMetaDataObjectClassProp IsFavoriteOcp = ObjectClass.getObjectClassProp(PropertyName.IsFavorite); ParentRelationship.View.AddViewPropertyAndFilter(ParentRelationship, IsFavoriteOcp, FilterMode: CswEnumNbtFilterMode.NotEquals, Value: CswNbtNodePropLogical.toLogicalGestalt(CswEnumTristate.True), ShowInGrid: false); CswNbtMetaDataObjectClassProp IsRecurringOcp = ObjectClass.getObjectClassProp(PropertyName.IsRecurring); ParentRelationship.View.AddViewPropertyAndFilter(ParentRelationship, IsRecurringOcp, FilterMode: CswEnumNbtFilterMode.NotEquals, Value: CswEnumTristate.True.ToString(), ShowInGrid: false); CswNbtMetaDataObjectClassProp StatusOcp = ObjectClass.getObjectClassProp(PropertyName.Status); ParentRelationship.View.AddViewPropertyAndFilter(ParentRelationship, StatusOcp, FilterMode: CswEnumNbtFilterMode.NotEquals, Value: NonRequestableStatus, ShowInGrid: false); }
public override void update() { //Set Container.Quantity to ReadOnly CswNbtMetaDataObjectClass ContainerObjClass = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.ContainerClass ); CswNbtMetaDataObjectClassProp QuantityProp = _CswNbtSchemaModTrnsctn.MetaData.getObjectClassProp( ContainerObjClass.ObjectClassId, CswNbtObjClassContainer.QuantityPropertyName ); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( QuantityProp, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.readOnly, true ); //Add "N/A" to Material.PhysicalState CswNbtMetaDataObjectClass MaterialObjClass = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.MaterialClass ); CswNbtMetaDataObjectClassProp PhysicalStateProp = _CswNbtSchemaModTrnsctn.MetaData.getObjectClassProp( MaterialObjClass.ObjectClassId, CswNbtObjClassMaterial.PhysicalStatePropertyName ); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( PhysicalStateProp, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.listoptions, "solid,liquid,gas,n/a" ); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( PhysicalStateProp, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.setvalonadd, true ); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( PhysicalStateProp, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.isrequired, true ); //Set Supplies.PhysicalState DefaultValue to "N/A", ReadOnly = true CswNbtMetaDataNodeType SupplyNodeType = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( "Supply" ); if( SupplyNodeType != null ) { CswNbtMetaDataNodeTypeProp PhysicalStateNTProp = _CswNbtSchemaModTrnsctn.MetaData.getNodeTypePropByObjectClassProp( SupplyNodeType.NodeTypeId, PhysicalStateProp.ObjectClassPropId ); PhysicalStateNTProp.DefaultValue.AsList.Value = "N/A"; _CswNbtSchemaModTrnsctn.MetaData.NodeTypeLayout.removePropFromLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Add, PhysicalStateNTProp, PhysicalStateNTProp.AddLayout.TabId ); PhysicalStateNTProp.ReadOnly = true; } //Undo Set Size.Capacity SetValOnAdd = false CswNbtMetaDataObjectClass SizeObjClass = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.SizeClass ); CswNbtMetaDataObjectClassProp CapacityProp = _CswNbtSchemaModTrnsctn.MetaData.getObjectClassProp( SizeObjClass.ObjectClassId, CswNbtObjClassSize.InitialQuantityPropertyName ); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( CapacityProp, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.setvalonadd, true ); }//Update()