}//Update() private void _createInventoryGroupNode() { CswNbtMetaDataObjectClass InvGrpOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.InventoryGroupClass ); CswNbtMetaDataNodeType InventoryGroupNT = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( "Inventory Group" ); if( InventoryGroupNT != null && InventoryGroupNT.ObjectClassId == InvGrpOC.ObjectClassId ) { InventoryGroupNode = _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId( InventoryGroupNT.NodeTypeId, CswNbtNodeCollection.MakeNodeOperation.WriteNode ); InventoryGroupNode.Name.Text = "CISPro"; InventoryGroupNode.postChanges( false ); } }
private CswNbtObjClassInventoryGroup _getInventoryGroup( string Name ) { CswNbtObjClassInventoryGroup DefaultInventoryGroup = null; CswNbtMetaDataObjectClass InvGrpOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.InventoryGroupClass ); CswNbtMetaDataNodeType InvGrpNt = InvGrpOc.FirstNodeType; if( null != InvGrpNt ) { foreach( CswNbtObjClassInventoryGroup InventoryGroupNode in InvGrpNt.getNodes( false, false, IncludeHiddenNodes: true ) ) { if( Name == InventoryGroupNode.Name.Text ) { DefaultInventoryGroup = InventoryGroupNode; } } } return DefaultInventoryGroup; }
public override void update() { if( _CswNbtSchemaModTrnsctn.isMaster() ) { //Case 29431 CswNbtMetaDataObjectClass InventoryGroupOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.InventoryGroupClass ); CswNbtObjClassInventoryGroup IgNode = null; foreach( CswNbtNode Node in InventoryGroupOc.getNodes( forceReInit: true, IncludeDefaultFilters: false, IncludeHiddenNodes: false, includeSystemNodes: false ) .Where( Node => Node.NodeName.ToLower().Trim() == "default inventory group" ) ) { IgNode = Node; break; } if( null != IgNode ) { CswNbtMetaDataObjectClass LocationOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.LocationClass ); CswNbtMetaDataObjectClassProp InGroupOcp = LocationOc.getObjectClassProp( CswNbtObjClassLocation.PropertyName.InventoryGroup ); _CswNbtSchemaModTrnsctn.MetaData.SetObjectClassPropDefaultValue( InGroupOcp, IgNode.NodeId.PrimaryKey, SubFieldName : CswEnumNbtSubFieldName.NodeID ); } //Requested from Case 29436: Set Label Format default value CswNbtMetaDataObjectClass PrintLabelOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.PrintLabelClass ); CswNbtObjClassPrintLabel PlNode = null; foreach( CswNbtNode Node in PrintLabelOc.getNodes( forceReInit : true, IncludeDefaultFilters : false, IncludeHiddenNodes : false, includeSystemNodes : false ) .Where( Node => Node.NodeName.ToLower().Trim() == "default barcode label" ) ) { PlNode = Node; break; } if( null != PlNode ) { CswNbtMetaDataObjectClass ContainerOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ContainerClass ); CswNbtMetaDataObjectClassProp PrintLabelOcp = ContainerOc.getObjectClassProp( CswNbtObjClassContainer.PropertyName.LabelFormat ); _CswNbtSchemaModTrnsctn.MetaData.SetObjectClassPropDefaultValue(PrintLabelOcp, PlNode.NodeId.PrimaryKey, SubFieldName: CswEnumNbtSubFieldName.NodeID ); } } } // update()
public override void update() { CswNbtMetaDataObjectClass InventoryGroupOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.InventoryGroupClass ); CswNbtObjClassInventoryGroup DefaultNodeAsInventoryGroup = null; foreach( CswNbtNode Group in InventoryGroupOc.getNodes( true, false ) ) { CswNbtObjClassInventoryGroup NodeAsInventoryGroup = Group; if( null != NodeAsInventoryGroup ) { if( NodeAsInventoryGroup.Name.Text.ToLower() == "cispro" ) { DefaultNodeAsInventoryGroup = NodeAsInventoryGroup; DefaultNodeAsInventoryGroup.Name.Text = "Default Inventory Group"; DefaultNodeAsInventoryGroup.IsDemo = true; DefaultNodeAsInventoryGroup.postChanges( ForceUpdate: false ); } } } if( null == DefaultNodeAsInventoryGroup ) { CswNbtMetaDataNodeType InventoryGroupNt = InventoryGroupOc.getLatestVersionNodeTypes().FirstOrDefault(); if( null != InventoryGroupNt ) { DefaultNodeAsInventoryGroup = _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId( InventoryGroupNt.NodeTypeId, CswNbtNodeCollection.MakeNodeOperation.WriteNode, OverrideUniqueValidation: false ); DefaultNodeAsInventoryGroup.Name.Text = "Default Inventory Group"; DefaultNodeAsInventoryGroup.postChanges( ForceUpdate: false ); } } CswNbtMetaDataObjectClass LocationOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.LocationClass ); CswNbtObjClassLocation DefaultLocation = null; if( null != DefaultNodeAsInventoryGroup ) { foreach( CswNbtObjClassLocation Location in LocationOc.getNodes( true, false ) ) { if( null != Location ) { if( Location.Name.Text.ToLower() == "center hall" ) { DefaultLocation = Location; } if( null == Location.InventoryGroup.RelatedNodeId || Int32.MinValue == Location.InventoryGroup.RelatedNodeId.PrimaryKey ) { Location.InventoryGroup.RelatedNodeId = DefaultNodeAsInventoryGroup.NodeId; Location.postChanges( ForceUpdate: false ); } } } } CswNbtMetaDataObjectClass WorkUnitOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.WorkUnitClass ); CswNbtMetaDataNodeType WorkUnitNt = WorkUnitOc.getLatestVersionNodeTypes().FirstOrDefault(); if( null != WorkUnitNt ) { WorkUnitNt.NameTemplateValue = ""; WorkUnitNt.addNameTemplateText( CswNbtObjClassWorkUnit.NamePropertyName ); CswNbtObjClassWorkUnit DefaultWorkUnit = _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId( WorkUnitNt.NodeTypeId, CswNbtNodeCollection.MakeNodeOperation.WriteNode, OverrideUniqueValidation: false ); DefaultWorkUnit.Name.Text = "Default Work Unit"; DefaultWorkUnit.IsDemo = true; DefaultWorkUnit.postChanges( ForceUpdate: false ); CswNbtMetaDataObjectClass UserOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.UserClass ); Collection<Int32> RoleIdsWithUsers = new Collection<Int32>(); CswNbtMetaDataNodeType UserNt = null; foreach( CswNbtObjClassUser User in UserOc.getNodes( true, false ) ) { if( null != User ) { UserNt = UserNt ?? User.NodeType; RoleIdsWithUsers.Add( User.RoleId.PrimaryKey ); if( null == User.WorkUnitProperty.RelatedNodeId || Int32.MinValue == User.WorkUnitProperty.RelatedNodeId.PrimaryKey ) { User.WorkUnitProperty.RelatedNodeId = DefaultWorkUnit.NodeId; } if( null != DefaultLocation && ( null == User.DefaultLocationProperty.SelectedNodeId || Int32.MinValue == User.DefaultLocationProperty.SelectedNodeId.PrimaryKey ) ) { User.DefaultLocationProperty.SelectedNodeId = DefaultLocation.NodeId; } User.postChanges( ForceUpdate: false ); } } CswNbtMetaDataObjectClass RoleOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.RoleClass ); if( null == UserNt ) { UserNt = UserOc.getLatestVersionNodeTypes().FirstOrDefault(); } if( null != UserNt ) { foreach( CswNbtObjClassRole Role in RoleOc.getNodes( true, false ) ) { if( null != Role && false == RoleIdsWithUsers.Contains( Role.NodeId.PrimaryKey ) ) { string ValidUserName = CswNbtObjClassUser.getValidUserName( Role.Name.Text.ToLower() ); if( ValidUserName != CswNbtObjClassUser.ChemSWAdminUsername ) { if( CswNbtObjClassUser.IsUserNameUnique( _CswNbtSchemaModTrnsctn.MetaData._CswNbtMetaDataResources.CswNbtResources, ValidUserName ) ) { CswNbtObjClassUser NewUser = _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId( UserNt.NodeTypeId, CswNbtNodeCollection.MakeNodeOperation.WriteNode, OverrideUniqueValidation: false ); NewUser.IsDemo = false; NewUser.Role.RelatedNodeId = Role.NodeId; NewUser.UsernameProperty.Text = ValidUserName; NewUser.WorkUnitProperty.RelatedNodeId = DefaultWorkUnit.NodeId; if( null != DefaultLocation ) { NewUser.DefaultLocationProperty.SelectedNodeId = DefaultLocation.NodeId; } NewUser.PasswordProperty.Password = Role.Name.Text.ToLower(); NewUser.postChanges( ForceUpdate: false ); } } } } } CswNbtMetaDataObjectClass IgPermissionOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.InventoryGroupPermissionClass ); foreach( CswNbtObjClassInventoryGroupPermission Permission in IgPermissionOc.getNodes( true, false ) ) { if( null != Permission ) { if( null != DefaultNodeAsInventoryGroup && ( null == Permission.InventoryGroup.RelatedNodeId || Int32.MinValue == Permission.InventoryGroup.RelatedNodeId.PrimaryKey ) ) { Permission.InventoryGroup.RelatedNodeId = DefaultNodeAsInventoryGroup.NodeId; } if( null == Permission.WorkUnit.RelatedNodeId || Int32.MinValue == Permission.WorkUnit.RelatedNodeId.PrimaryKey ) { Permission.WorkUnit.RelatedNodeId = DefaultWorkUnit.NodeId; } Permission.postChanges( ForceUpdate: false ); } } } CswNbtMetaDataObjectClass MaterialOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.MaterialClass ); CswNbtMetaDataObjectClass SynonymOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.MaterialSynonymClass ); CswNbtMetaDataObjectClass SizeOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.SizeClass ); CswNbtMetaDataObjectClass VendorOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.VendorClass ); CswNbtMetaDataObjectClass UnitOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.UnitOfMeasureClass ); CswNbtObjClassVendor DefaultVendor = null; CswNbtMetaDataNodeType VendorNt = VendorOc.getLatestVersionNodeTypes().FirstOrDefault(); if( null != VendorNt ) { DefaultVendor = _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId( VendorNt.NodeTypeId, CswNbtNodeCollection.MakeNodeOperation.WriteNode, OverrideUniqueValidation: false ); DefaultVendor.VendorName.Text = "Default Vendor"; DefaultVendor.IsDemo = true; DefaultVendor.postChanges( ForceUpdate: false ); } CswNbtMetaDataNodeType SizeNt = SizeOc.getLatestVersionNodeTypes().FirstOrDefault(); CswNbtMetaDataNodeType SynonymNt = SynonymOc.getLatestVersionNodeTypes().FirstOrDefault(); CswNbtObjClassUnitOfMeasure DefaultSizeUnit = null; CswNbtObjClassUnitOfMeasure DefaultTimeUnit = null; foreach( CswNbtObjClassUnitOfMeasure Unit in UnitOc.getNodes( true, false ) ) { if( null != Unit ) { if( Unit.Name.Text.ToLower() == "g" ) { DefaultSizeUnit = Unit; } else if( Unit.Name.Text.ToLower() == "years" ) { DefaultTimeUnit = Unit; } } } foreach( CswNbtMetaDataNodeType MaterialNt in MaterialOc.getLatestVersionNodeTypes() ) { CswNbtObjClassMaterial Material = _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId( MaterialNt.NodeTypeId, CswNbtNodeCollection.MakeNodeOperation.WriteNode, OverrideUniqueValidation: false ); Material.IsDemo = true; Material.TradeName.Text = "Default " + MaterialNt.NodeTypeName; if( null != DefaultVendor ) { Material.Supplier.RelatedNodeId = DefaultVendor.NodeId; } Material.PartNumber.Text = "658-35AB"; Material.PhysicalState.Value = CswNbtObjClassMaterial.PhysicalStates.Solid; Material.ExpirationInterval.Quantity = 1; if( null != DefaultTimeUnit ) { Material.ExpirationInterval.UnitId = DefaultTimeUnit.NodeId; } Material.postChanges( ForceUpdate: false ); if( null != SizeNt ) { CswNbtObjClassSize Size = _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId( SizeNt.NodeTypeId, CswNbtNodeCollection.MakeNodeOperation.WriteNode, OverrideUniqueValidation: false ); Size.IsDemo = true; Size.Material.RelatedNodeId = Material.NodeId; Size.CatalogNo.Text = "NE-H5/3"; Size.InitialQuantity.Quantity = 1; if( null != DefaultSizeUnit ) { Size.InitialQuantity.UnitId = DefaultSizeUnit.NodeId; } Size.postChanges( ForceUpdate: false ); } if( null != SynonymNt ) { CswNbtObjClassMaterialSynonym Synonym = _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId( SynonymNt.NodeTypeId, CswNbtNodeCollection.MakeNodeOperation.WriteNode, OverrideUniqueValidation: false ); Synonym.IsDemo = true; Synonym.Material.RelatedNodeId = Material.NodeId; Synonym.Name.Text = Material.TradeName.Text + " Synonym"; Synonym.postChanges( ForceUpdate: false ); } } }//Update()
public override void update() { bool MakeAdminNode = true; bool MakeChemSWAdminNode = true; CswNbtObjClassWorkUnit DefaultWorkUnit = _getDefaultWorkUnit(); CswNbtObjClassInventoryGroup CISProInventoryGroup = _getInventoryGroup( "CISPro" ); CswNbtObjClassInventoryGroup DefaultInventoryGroup = _getInventoryGroup( "Default Inventory Group" ); CswNbtObjClassRole AdminRole = _CswNbtSchemaModTrnsctn.Nodes.makeRoleNodeFromRoleName( "Administrator" ); CswNbtObjClassRole ChemSWAdminRole = _CswNbtSchemaModTrnsctn.Nodes.makeRoleNodeFromRoleName( "chemsw_admin_role" ); CswNbtMetaDataObjectClass InvGrpPermOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.InventoryGroupPermissionClass ); CswNbtMetaDataNodeType InvGrpPermNt = InvGrpPermOc.FirstNodeType; if( null != DefaultInventoryGroup ) { if( null != InvGrpPermNt && null != DefaultWorkUnit ) { foreach( CswNbtObjClassInventoryGroupPermission InvGrpPermNode in InvGrpPermOc.getNodes( false, false, IncludeHiddenNodes: true ) ) { if( ( null != CISProInventoryGroup && InvGrpPermNode.InventoryGroup.RelatedNodeId == CISProInventoryGroup.NodeId ) || InvGrpPermNode.InventoryGroup.Gestalt == "CISPro" ) { InvGrpPermNode.InventoryGroup.RelatedNodeId = DefaultInventoryGroup.NodeId; InvGrpPermNode.WorkUnit.RelatedNodeId = DefaultWorkUnit.NodeId; InvGrpPermNode.postChanges( true ); } if( null != AdminRole && InvGrpPermNode.Role.RelatedNodeId == AdminRole.NodeId ) { MakeAdminNode = false; } else if( null != ChemSWAdminRole && InvGrpPermNode.Role.RelatedNodeId == ChemSWAdminRole.NodeId ) { MakeChemSWAdminNode = false; } } if( MakeAdminNode && null != AdminRole ) { _createInventoryGroupPermission( InvGrpPermNt.NodeTypeId, AdminRole.NodeId, DefaultInventoryGroup.NodeId, DefaultWorkUnit.NodeId ); } if( MakeChemSWAdminNode && null != ChemSWAdminRole ) { _createInventoryGroupPermission( InvGrpPermNt.NodeTypeId, ChemSWAdminRole.NodeId, DefaultInventoryGroup.NodeId, DefaultWorkUnit.NodeId ); } } CswNbtMetaDataObjectClass LocationOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.LocationClass ); CswNbtMetaDataNodeType LocationNt = LocationOc.FirstNodeType; if( null != CISProInventoryGroup && null != LocationNt ) { foreach( CswNbtObjClassLocation LocationNode in LocationOc.getNodes( false, false, IncludeHiddenNodes: true ) ) { if( LocationNode.InventoryGroup.RelatedNodeId == CISProInventoryGroup.NodeId ) { LocationNode.InventoryGroup.RelatedNodeId = DefaultInventoryGroup.NodeId; LocationNode.postChanges( false ); } } CISProInventoryGroup.Node.delete(); } } }//Update()
public override void update() { CswNbtMetaDataObjectClass InventoryGroupOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass(CswEnumNbtObjectClass.InventoryGroupClass); CswNbtMetaDataObjectClass InventoryGroupPermissionOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass(CswEnumNbtObjectClass.InventoryGroupPermissionClass); CswNbtMetaDataNodeType InvGrpNT = InventoryGroupOc.FirstNodeType; CswNbtMetaDataNodeType InvGrpPermNT = InventoryGroupPermissionOc.FirstNodeType; //1: Get Default Inventory Group CswNbtObjClassInventoryGroup DefaultInventoryGroup = null; CswNbtObjClassInventoryGroup CISProInventoryGroup = null; foreach (CswNbtObjClassInventoryGroup InventoryGroup in InventoryGroupOc.getNodes(true, false, false, true)) { if (InventoryGroup.Name.Text == "Default Inventory Group") { DefaultInventoryGroup = InventoryGroup; } else if (InventoryGroup.Name.Text == "CISPro") { CISProInventoryGroup = InventoryGroup; } } if (null == DefaultInventoryGroup) { DefaultInventoryGroup = InventoryGroupOc.getNodes(true, false, false, true).FirstOrDefault(); } if (null == DefaultInventoryGroup) { if (null != InvGrpNT) { DefaultInventoryGroup = _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId(InvGrpNT.NodeTypeId, delegate(CswNbtNode NewNode) { CswNbtObjClassInventoryGroup DefInvGrp = NewNode; DefInvGrp.Name.Text = "Default Inventory Group"; }); } } if (null != DefaultInventoryGroup) //At this point DefaultInventoryGroup should never be null { //2: Set Default Value to Default Inventory Group, if no DefaultValue is present CswNbtMetaDataObjectClass LocationOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass(CswEnumNbtObjectClass.LocationClass); foreach (CswNbtMetaDataNodeType LocationNt in LocationOc.getNodeTypes()) { CswNbtMetaDataNodeTypeProp InventoryGroupNtp = LocationNt.getNodeTypePropByObjectClassProp(CswNbtObjClassLocation.PropertyName.InventoryGroup); if (false == InventoryGroupNtp.HasDefaultValue()) { InventoryGroupNtp.DefaultValue.AsRelationship.RelatedNodeId = DefaultInventoryGroup.NodeId; } } //3: Update any null Inventory Group values with Default foreach (CswNbtObjClassLocation Location in LocationOc.getNodes(true, false, false, true)) { if (false == CswTools.IsPrimaryKey(Location.InventoryGroup.RelatedNodeId)) { Location.InventoryGroup.RelatedNodeId = DefaultInventoryGroup.NodeId; Location.postChanges(ForceUpdate: false); } } //4: Ensure at least one Inventory Group Permission exists CswNbtMetaDataNodeType IgPermNt = InventoryGroupPermissionOc.getLatestVersionNodeTypes().FirstOrDefault(); if (null != IgPermNt) { try { CswNbtObjClassInventoryGroupPermission DefaultPermission = _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId(IgPermNt.NodeTypeId, delegate(CswNbtNode NewNode) { CswNbtObjClassInventoryGroupPermission WildCardPerm = NewNode; WildCardPerm.PermissionGroup.RelatedNodeId = DefaultInventoryGroup.NodeId; WildCardPerm.ApplyToAllRoles.Checked = CswEnumTristate.True; WildCardPerm.ApplyToAllWorkUnits.Checked = CswEnumTristate.True; WildCardPerm.Dispense.Checked = CswEnumTristate.True; WildCardPerm.Dispose.Checked = CswEnumTristate.True; WildCardPerm.Edit.Checked = CswEnumTristate.True; WildCardPerm.Request.Checked = CswEnumTristate.True; WildCardPerm.Undispose.Checked = CswEnumTristate.True; }); } catch (CswDniException ex) //If we're here, it's because this wildcard already exists { if (ex.ErrorType != CswEnumErrorType.Warning) { throw; } } } //5: Get rid of deprecated CISPro Inventory Group and move their permissions over to Default Inventory Group if (null != CISProInventoryGroup) { CswNbtMetaDataObjectClass WorkUnitOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass(CswEnumNbtObjectClass.WorkUnitClass); CswNbtObjClassWorkUnit DefaultWorkUnit = null; foreach (CswNbtObjClassWorkUnit WorkUnit in WorkUnitOc.getNodes(true, false, false, true)) { if (WorkUnit.Name.Text == "Default Work Unit") { DefaultWorkUnit = WorkUnit; } } if (null != DefaultWorkUnit) { foreach (CswNbtObjClassInventoryGroupPermission InventoryGroupPerm in InventoryGroupPermissionOc.getNodes(true, false, false, true)) { if (InventoryGroupPerm.PermissionGroup.RelatedNodeId == CISProInventoryGroup.NodeId) { try { InventoryGroupPerm.PermissionGroup.RelatedNodeId = DefaultInventoryGroup.NodeId; InventoryGroupPerm.PermissionGroup.SyncGestalt(); InventoryGroupPerm.WorkUnit.RelatedNodeId = DefaultWorkUnit.NodeId; InventoryGroupPerm.WorkUnit.SyncGestalt(); InventoryGroupPerm.postChanges(false); } catch (CswDniException) //If we're here, it's because the Permission already exists on Default Inventory Group { InventoryGroupPerm.Node.delete(true, true); } } } } CISProInventoryGroup.Node.delete(true, true); } } //6: Fix Inventory Group Permissions grid prop if (null != InvGrpNT && null != InvGrpPermNT) { CswNbtMetaDataNodeTypeProp PermissionsNTP = InvGrpNT.getNodeTypePropByObjectClassProp(CswNbtObjClassInventoryGroup.PropertyName.Permissions); CswNbtView InvGrpPermView = _CswNbtSchemaModTrnsctn.restoreView(PermissionsNTP.ViewId); if (null == InvGrpPermView) { InvGrpPermView = _CswNbtSchemaModTrnsctn.makeSafeView("Permissions", CswEnumNbtViewVisibility.Property); InvGrpPermView.ViewMode = CswEnumNbtViewRenderingMode.Grid; } InvGrpPermView.Root.ChildRelationships.Clear(); CswNbtMetaDataNodeTypeProp PermissionGroupNTP = InvGrpPermNT.getNodeTypePropByObjectClassProp(CswNbtObjClassInventoryGroupPermission.PropertyName.PermissionGroup); CswNbtMetaDataNodeTypeProp RoleNTP = InvGrpPermNT.getNodeTypePropByObjectClassProp(CswNbtObjClassInventoryGroupPermission.PropertyName.Role); CswNbtMetaDataNodeTypeProp WorkUnitNTP = InvGrpPermNT.getNodeTypePropByObjectClassProp(CswNbtObjClassInventoryGroupPermission.PropertyName.WorkUnit); CswNbtMetaDataNodeTypeProp ViewNTP = InvGrpPermNT.getNodeTypePropByObjectClassProp(CswNbtObjClassInventoryGroupPermission.PropertyName.View); CswNbtMetaDataNodeTypeProp EditNTP = InvGrpPermNT.getNodeTypePropByObjectClassProp(CswNbtObjClassInventoryGroupPermission.PropertyName.Edit); CswNbtMetaDataNodeTypeProp DispenseNTP = InvGrpPermNT.getNodeTypePropByObjectClassProp(CswNbtObjClassInventoryGroupPermission.PropertyName.Dispense); CswNbtMetaDataNodeTypeProp RequestNTP = InvGrpPermNT.getNodeTypePropByObjectClassProp(CswNbtObjClassInventoryGroupPermission.PropertyName.Request); CswNbtViewRelationship RootRel = InvGrpPermView.AddViewRelationship(InvGrpNT, false); CswNbtViewRelationship PermRel = InvGrpPermView.AddViewRelationship(RootRel, CswEnumNbtViewPropOwnerType.Second, PermissionGroupNTP, true); InvGrpPermView.AddViewProperty(PermRel, PermissionGroupNTP, 1); InvGrpPermView.AddViewProperty(PermRel, RoleNTP, 2); InvGrpPermView.AddViewProperty(PermRel, WorkUnitNTP, 3); InvGrpPermView.AddViewProperty(PermRel, ViewNTP, 4); InvGrpPermView.AddViewProperty(PermRel, EditNTP, 5); InvGrpPermView.AddViewProperty(PermRel, DispenseNTP, 6); InvGrpPermView.AddViewProperty(PermRel, RequestNTP, 7); InvGrpPermView.save(); PermissionsNTP.ViewId = InvGrpPermView.ViewId; } }