/// <summary> /// The actual update call /// </summary> public override void update() { CswNbtMetaDataObjectClass WorkUnitOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass(CswEnumNbtObjectClass.WorkUnitClass); CswNbtObjClassWorkUnit DefaultWorkUnit = null; CswNbtObjClassWorkUnit FakeDefaultWorkUnit = null; foreach (CswNbtObjClassWorkUnit WorkUnitNode in WorkUnitOC.getNodes(false, false, IncludeHiddenNodes: true)) { if (WorkUnitNode.Name.Text == "Default Work Unit") { WorkUnitNode.IsDemo = false; WorkUnitNode.postChanges(false); if (null == DefaultWorkUnit) { DefaultWorkUnit = WorkUnitNode; } else { FakeDefaultWorkUnit = WorkUnitNode; } } } if (null == DefaultWorkUnit) { CswNbtMetaDataNodeType WorkUnitNT = WorkUnitOC.FirstNodeType; if (null != WorkUnitNT) { DefaultWorkUnit = _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId(WorkUnitNT.NodeTypeId, CswEnumNbtMakeNodeOperation.DoNothing); DefaultWorkUnit.Name.Text = "Default Work Unit"; DefaultWorkUnit.postChanges(false); } } if (null != DefaultWorkUnit) { CswNbtMetaDataObjectClass UserOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass(CswEnumNbtObjectClass.UserClass); foreach (CswNbtObjClassUser UserNode in UserOC.getNodes(false, false, IncludeHiddenNodes: true)) { if (null == UserNode.WorkUnitProperty.RelatedNodeId || (null != FakeDefaultWorkUnit && UserNode.WorkUnitProperty.RelatedNodeId == FakeDefaultWorkUnit.NodeId)) { UserNode.WorkUnitProperty.RelatedNodeId = DefaultWorkUnit.NodeId; UserNode.postChanges(false); } } if (null != FakeDefaultWorkUnit) { FakeDefaultWorkUnit.Node.delete(false, true); } } CswNbtMetaDataObjectClassProp WorkUnitNameOCP = WorkUnitOC.getObjectClassProp(CswNbtObjClassWorkUnit.PropertyName.Name); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp(WorkUnitNameOCP, CswEnumNbtObjectClassPropAttributes.isunique, true); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp(WorkUnitNameOCP, CswEnumNbtObjectClassPropAttributes.isrequired, true); }
public override void update() { CswNbtMetaDataObjectClass WorkUnitOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.WorkUnitClass ); CswNbtObjClassWorkUnit DefaultWorkUnit = null; CswNbtObjClassWorkUnit FakeDefaultWorkUnit = null; foreach( CswNbtObjClassWorkUnit WorkUnitNode in WorkUnitOC.getNodes( false, false, IncludeHiddenNodes: true ) ) { if( WorkUnitNode.Name.Text.Contains( "Default Work Unit" ) ) { WorkUnitNode.Name.Text = "Default Work Unit"; WorkUnitNode.IsDemo = false; WorkUnitNode.postChanges( false ); if( null == DefaultWorkUnit ) { DefaultWorkUnit = WorkUnitNode; } else { FakeDefaultWorkUnit = WorkUnitNode; } } } if( null == DefaultWorkUnit ) { CswNbtMetaDataNodeType WorkUnitNT = WorkUnitOC.FirstNodeType; if( null != WorkUnitNT ) { _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId( WorkUnitNT.NodeTypeId, delegate( CswNbtNode NewNode ) { DefaultWorkUnit = NewNode; DefaultWorkUnit.Name.Text = "Default Work Unit"; //DefaultWorkUnit.postChanges( false ); } ); } } if( null != DefaultWorkUnit ) { CswNbtMetaDataObjectClass UserOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.UserClass ); foreach( CswNbtObjClassUser UserNode in UserOC.getNodes( false, false, IncludeHiddenNodes: true ) ) { if( null == UserNode.WorkUnitProperty.RelatedNodeId || ( null != FakeDefaultWorkUnit && UserNode.WorkUnitProperty.RelatedNodeId == FakeDefaultWorkUnit.NodeId ) ) { UserNode.WorkUnitProperty.RelatedNodeId = DefaultWorkUnit.NodeId; UserNode.postChanges( false ); } } if( null != FakeDefaultWorkUnit ) { FakeDefaultWorkUnit.Node.delete( false, true ); } } } // update()