public override void update() { CswSequenceName assemblySequenceName = new CswSequenceName( "Assembly Barcode" ); int sequenceId; if( false == _CswNbtSchemaModTrnsctn.doesSequenceExist( assemblySequenceName ) ) { sequenceId = _CswNbtSchemaModTrnsctn.makeSequence( assemblySequenceName, "AS", "", 6, 0 ); } else { sequenceId = CswConvert.ToInt32( _CswNbtSchemaModTrnsctn.getSequence( assemblySequenceName ).Rows[0]["sequenceid"] ); } CswNbtMetaDataObjectClass assemblyOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.EquipmentAssemblyClass ); foreach( CswNbtMetaDataNodeType assemblyNT in assemblyOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeProp barcodeNTP = assemblyNT.getNodeTypePropByObjectClassProp( CswNbtObjClassEquipmentAssembly.PropertyName.Barcode ); if( Int32.MinValue == barcodeNTP.SequenceId ) { barcodeNTP.setSequence( sequenceId ); } barcodeNTP.removeFromAllLayouts(); _CswNbtSchemaModTrnsctn.MetaData.NodeTypeLayout.updatePropLayout( CswEnumNbtLayoutType.Edit, assemblyNT.NodeTypeId, barcodeNTP, true, TabId: assemblyNT.getIdentityTab().TabId ); } } // update()
public override void update() { // Make sure all Location nodetypes are using the Location sequence CswSequenceName LocationSeqName = new CswSequenceName( "Locations" ); Int32 LocationSeqId; if(_CswNbtSchemaModTrnsctn.doesSequenceExist(LocationSeqName )) { DataTable SeqTable = _CswNbtSchemaModTrnsctn.getSequence( LocationSeqName ); LocationSeqId = CswConvert.ToInt32( SeqTable.Rows[0]["sequenceid"] ); } else { LocationSeqId = _CswNbtSchemaModTrnsctn.makeSequence( LocationSeqName, "LS", string.Empty, 6, 1 ); } if(Int32.MinValue != LocationSeqId ) { CswNbtMetaDataObjectClass LocationOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.LocationClass ); foreach( CswNbtMetaDataNodeType LocationNT in LocationOC.getNodeTypes() ) { // Set sequence id CswNbtMetaDataNodeTypeProp BarcodeNTP = LocationNT.getNodeTypePropByObjectClassProp( CswNbtObjClassLocation.PropertyName.Barcode ); BarcodeNTP.setSequence( LocationSeqId ); } // foreach( CswNbtMetaDataNodeType LocationNT in LocationOC.getNodeTypes() ) } // if(Int32.MinValue != LocationSeqId ) } //Update()
public override void update() { Int32 ContainerBarcodeId = _CswNbtSchemaModTrnsctn.makeSequence( new CswSequenceName( "Container Barcode" ), "", "", 6, 1 ); CswNbtMetaDataObjectClass ContainerOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.ContainerClass ); foreach( CswNbtMetaDataNodeType ContainerNt in ContainerOc.getLatestVersionNodeTypes() ) { CswNbtMetaDataNodeTypeProp BarcodeNtp = ContainerNt.getBarcodeProperty(); BarcodeNtp.setSequence( ContainerBarcodeId ); } }//Update()
public override void update() { CswNbtMetaDataObjectClass materialOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.MaterialClass ); #region Create and set the material Id for all material NTs CswSequenceName materialIDSequenceName = new CswSequenceName( "Material Id nbt" ); if( false == _CswNbtSchemaModTrnsctn.doesSequenceExist( materialIDSequenceName ) ) { int seqId = _CswNbtSchemaModTrnsctn.makeSequence( materialIDSequenceName, "M", "", 6, 0 ); foreach( CswNbtMetaDataNodeType matNT in materialOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeProp materialIdNTP = matNT.getNodeTypePropByObjectClassProp( CswNbtObjClassMaterial.PropertyName.MaterialId ); materialIdNTP.setSequence( seqId ); } } #endregion #region set the NodeViewId for Manufacturing Sites on Material CswNbtViewId viewid = null; foreach( CswNbtView view in _CswNbtSchemaModTrnsctn.ViewSelect.restoreViews( "Manufacturing Sites" ) ) { if( view.Visibility.Equals( NbtViewVisibility.Property ) ) { viewid = view.ViewId; } } if( null != viewid ) { CswNbtMetaDataObjectClassProp manufacturingSitesOCP = materialOC.getObjectClassProp( CswNbtObjClassMaterial.PropertyName.ManufacturingSites ); foreach( CswNbtMetaDataNodeTypeProp manufacturingSitesNTP in manufacturingSitesOCP.getNodeTypeProps() ) { manufacturingSitesNTP.ViewId = viewid; } } #endregion }
public override void update() { // Part 1: Set the sequence for the barcode property CswNbtMetaDataObjectClass UserOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.UserClass ); foreach( CswNbtMetaDataNodeType UserOCNT in UserOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeProp barcodeNTP = UserOCNT.getNodeTypePropByObjectClassProp( CswNbtObjClassUser.PropertyName.Barcode ); if( null != barcodeNTP ) { barcodeNTP.ReadOnly = true; if( Int32.MinValue == barcodeNTP.SequenceId ) { int userOCBarcodeSequenceId = _CswNbtSchemaModTrnsctn.makeSequence( new CswSequenceName( "User Barcode" ), "U", "", 6, 0 ); barcodeNTP.setSequence( userOCBarcodeSequenceId ); } barcodeNTP.removeFromLayout( LayoutType: CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Add ); } } } //Update()
public override void update() { #region NodeTypes CswNbtMetaDataObjectClass RequestOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.RequestClass ); string RequestNodeTypeName = "Request"; CswNbtMetaDataNodeType RequestNt = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( RequestNodeTypeName ); if( null != RequestNt && RequestNt.ObjectClassId != RequestOc.ObjectClassId ) { RequestNodeTypeName = "CISPro Request"; RequestNt = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( RequestNodeTypeName ); } if( null != RequestNt && RequestNt.ObjectClassId != RequestOc.ObjectClassId ) { throw new CswDniException( ErrorType.Error, "Could not create a unique Request NodeType", "Request nodetypes named 'Request' and 'CISPro Request' already exist." ); } if( null == RequestNt ) { RequestNt = _CswNbtSchemaModTrnsctn.MetaData.makeNewNodeType( new CswNbtWcfMetaDataModel.NodeType( RequestOc ) { Category = "Requests", NodeTypeName = RequestNodeTypeName } ); } CswNbtMetaDataNodeTypeProp NameNtp = RequestNt.getNodeTypePropByObjectClassProp( CswNbtObjClassRequest.PropertyName.Name.ToString() ); CswNbtMetaDataNodeTypeProp UserNtp = RequestNt.getNodeTypePropByObjectClassProp( CswNbtObjClassRequest.PropertyName.Requestor.ToString() ); CswNbtMetaDataNodeTypeProp DateNtp = RequestNt.getNodeTypePropByObjectClassProp( CswNbtObjClassRequest.PropertyName.SubmittedDate.ToString() ); RequestNt.NameTemplateValue = ""; RequestNt.addNameTemplateText( NameNtp.PropName ); RequestNt.addNameTemplateText( UserNtp.PropName ); RequestNt.addNameTemplateText( DateNtp.PropName ); CswNbtMetaDataObjectClass RequestItemOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.RequestItemClass ); string RequestItemNodeTypeName = "Request Item"; CswNbtMetaDataNodeType RequestItemNt = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( RequestItemNodeTypeName ); if( null != RequestItemNt && RequestItemNt.ObjectClassId != RequestItemOc.ObjectClassId ) { RequestItemNodeTypeName = "CISPro Request Item"; RequestNt = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( RequestItemNodeTypeName ); } if( null != RequestItemNt && RequestItemNt.ObjectClassId != RequestItemOc.ObjectClassId ) { throw new CswDniException( ErrorType.Error, "Could not create a unique Request Item NodeType", "Request nodetypes named 'Request Item' and 'CISPro Request Item' already exist." ); } if( null == RequestItemNt ) { RequestItemNt = _CswNbtSchemaModTrnsctn.MetaData.makeNewNodeType(new CswNbtWcfMetaDataModel.NodeType(RequestItemOc) { Category = "Requests", NodeTypeName = RequestItemNodeTypeName }); } CswNbtMetaDataNodeTypeProp RequestItemRequestNtp = RequestItemNt.getNodeTypePropByObjectClassProp( CswNbtObjClassRequestItem.PropertyName.Request ); RequestItemRequestNtp.SetFK( NbtViewRelatedIdType.NodeTypeId.ToString(), RequestNt.NodeTypeId ); CswNbtMetaDataNodeTypeProp TypeNtp = RequestItemNt.getNodeTypePropByObjectClassProp( CswNbtObjClassRequestItem.PropertyName.Type ); CswNbtMetaDataNodeTypeProp StatusNtp = RequestItemNt.getNodeTypePropByObjectClassProp( CswNbtObjClassRequestItem.PropertyName.Status ); CswNbtMetaDataNodeTypeProp ExternalOrderNoNtp = RequestItemNt.getNodeTypePropByObjectClassProp( CswNbtObjClassRequestItem.PropertyName.ExternalOrderNumber ); CswNbtMetaDataNodeTypeProp QuantityNtp = RequestItemNt.getNodeTypePropByObjectClassProp( CswNbtObjClassRequestItem.PropertyName.Quantity ); CswNbtMetaDataNodeTypeProp CountNtp = RequestItemNt.getNodeTypePropByObjectClassProp( CswNbtObjClassRequestItem.PropertyName.Count ); CswNbtMetaDataNodeTypeProp SizeNtp = RequestItemNt.getNodeTypePropByObjectClassProp( CswNbtObjClassRequestItem.PropertyName.Size ); CswNbtMetaDataNodeTypeProp MaterialNtp = RequestItemNt.getNodeTypePropByObjectClassProp( CswNbtObjClassRequestItem.PropertyName.Material ); CswNbtMetaDataNodeTypeProp ContainerNtp = RequestItemNt.getNodeTypePropByObjectClassProp( CswNbtObjClassRequestItem.PropertyName.Container ); CswNbtMetaDataNodeTypeProp LocationNtp = RequestItemNt.getNodeTypePropByObjectClassProp( CswNbtObjClassRequestItem.PropertyName.Location ); CswNbtMetaDataNodeTypeProp NumberNtp = RequestItemNt.getNodeTypePropByObjectClassProp( CswNbtObjClassRequestItem.PropertyName.Number ); Int32 SequenceId = _CswNbtSchemaModTrnsctn.makeSequence( new CswSequenceName( "Request Items" ), "R", "", 6, 1 ); NumberNtp.setSequence( SequenceId ); RequestItemNt.addNameTemplateText( RequestItemRequestNtp.PropName ); RequestItemNt.addNameTemplateText( NumberNtp.PropName ); RequestItemNt.addNameTemplateText( TypeNtp.PropName ); #endregion NodeTypes #region Tabs CswNbtMetaDataNodeTypeTab RequestItemsNtt = RequestNt.getNodeTypeTab( "Request Items" ); if( null == RequestItemsNtt ) { RequestItemsNtt = _CswNbtSchemaModTrnsctn.MetaData.makeNewTab( RequestNt, "Request Items", RequestNt.getNodeTypeTabIds().Count ); } CswNbtMetaDataFieldType GridFt = _CswNbtSchemaModTrnsctn.MetaData.getFieldType( CswNbtMetaDataFieldType.NbtFieldType.Grid ); CswNbtMetaDataNodeTypeProp RequestItemsGridNtp = _CswNbtSchemaModTrnsctn.MetaData.makeNewProp( new CswNbtWcfMetaDataModel.NodeTypeProp( RequestNt, GridFt, "Request Items" ) { TabId = RequestItemsNtt.TabId } ); CswNbtView GridView = _CswNbtSchemaModTrnsctn.ViewSelect.restoreView( RequestItemsGridNtp.ViewId ); GridView.ViewName = "Requested Items"; GridView.Visibility = NbtViewVisibility.Property; GridView.ViewMode = NbtViewRenderingMode.Grid; GridView.Category = "Requests"; GridView.Root.ChildRelationships.Clear(); CswNbtViewRelationship RequestRel = GridView.AddViewRelationship( RequestNt, false ); CswNbtViewRelationship RequestItemRel = GridView.AddViewRelationship( RequestRel, NbtViewPropOwnerType.Second, RequestItemRequestNtp, false ); GridView.AddViewProperty( RequestItemRel, NumberNtp ); GridView.AddViewProperty( RequestItemRel, TypeNtp ); GridView.AddViewProperty( RequestItemRel, ExternalOrderNoNtp ); GridView.AddViewProperty( RequestItemRel, StatusNtp ); GridView.AddViewProperty( RequestItemRel, QuantityNtp ); GridView.AddViewProperty( RequestItemRel, CountNtp ); GridView.AddViewProperty( RequestItemRel, SizeNtp ); GridView.AddViewProperty( RequestItemRel, MaterialNtp ); GridView.AddViewProperty( RequestItemRel, ContainerNtp ); GridView.AddViewProperty( RequestItemRel, LocationNtp ); GridView.save(); #endregion Tabs #region Views string MyRequestViewName = "My Request History"; bool UniqueView = _CswNbtSchemaModTrnsctn.restoreViews( MyRequestViewName ).Count == 0; if( false == UniqueView ) { MyRequestViewName = "My CISPro Request History"; UniqueView = _CswNbtSchemaModTrnsctn.restoreViews( MyRequestViewName ).Count == 0; } if( UniqueView ) { CswNbtView MyRequestsView = _CswNbtSchemaModTrnsctn.makeView(); MyRequestsView.makeNew( MyRequestViewName, NbtViewVisibility.Global ); MyRequestsView.Category = "Requests"; MyRequestsView.ViewMode = NbtViewRenderingMode.Tree; CswNbtViewRelationship RequestVr = MyRequestsView.AddViewRelationship( RequestNt, true ); MyRequestsView.AddViewPropertyAndFilter( RequestVr, RequestNt.getNodeTypePropByObjectClassProp( CswNbtObjClassRequest.PropertyName.SubmittedDate.ToString() ), FilterMode: CswNbtPropFilterSql.PropertyFilterMode.NotNull ); MyRequestsView.save(); } #endregion Views }//Update()
public override void update() { CswNbtMetaDataObjectClass feedbackOC = _CswNbtSchemaModTrnsctn.createObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.FeedbackClass, "docs.gif", false, false ); CswNbtMetaDataObjectClassProp caseNumberOCP = _CswNbtSchemaModTrnsctn.createObjectClassProp( feedbackOC, new CswNbtWcfMetaDataModel.ObjectClassProp() { PropName = CswNbtObjClassFeedback.CaseNumberPropertyName, FieldType = CswNbtMetaDataFieldType.NbtFieldType.Sequence } ); Int32 userOCID = _CswNbtSchemaModTrnsctn.MetaData.getObjectClassId( CswNbtMetaDataObjectClass.NbtObjectClass.UserClass ); CswNbtMetaDataObjectClassProp authorOCP = _CswNbtSchemaModTrnsctn.createObjectClassProp( feedbackOC, new CswNbtWcfMetaDataModel.ObjectClassProp() { PropName = CswNbtObjClassFeedback.AuthorPropertyName, FieldType = CswNbtMetaDataFieldType.NbtFieldType.Relationship, IsFk = true, FkType = NbtViewRelatedIdType.ObjectClassId.ToString(), FkValue = userOCID, ServerManaged = true, SetValOnAdd = true } ); CswNbtMetaDataObjectClassProp dateSubmittedOCP = _CswNbtSchemaModTrnsctn.createObjectClassProp( feedbackOC, new CswNbtWcfMetaDataModel.ObjectClassProp() { PropName = CswNbtObjClassFeedback.DateSubmittedPropertyName, FieldType = CswNbtMetaDataFieldType.NbtFieldType.DateTime, Extended = CswNbtNodePropDateTime.DateDisplayMode.DateTime.ToString(), ServerManaged = true, SetValOnAdd = true } ); CswNbtMetaDataObjectClassProp categoryOCP = _CswNbtSchemaModTrnsctn.createObjectClassProp( feedbackOC, new CswNbtWcfMetaDataModel.ObjectClassProp() { PropName = CswNbtObjClassFeedback.CategoryPropertyName, FieldType = CswNbtMetaDataFieldType.NbtFieldType.List, ListOptions = "Bug Report,Feature Request,Question,Praise", SetValOnAdd = true } ); CswNbtMetaDataObjectClassProp subjectOCP = _CswNbtSchemaModTrnsctn.createObjectClassProp( feedbackOC, new CswNbtWcfMetaDataModel.ObjectClassProp() { PropName = CswNbtObjClassFeedback.SubjectPropertyName, FieldType = CswNbtMetaDataFieldType.NbtFieldType.Text, SetValOnAdd = true } ); _CswNbtSchemaModTrnsctn.createObjectClassProp( feedbackOC, new CswNbtWcfMetaDataModel.ObjectClassProp() { PropName = CswNbtObjClassFeedback.SummaryPropertyName, FieldType = CswNbtMetaDataFieldType.NbtFieldType.Memo, SetValOnAdd = true } ); CswNbtMetaDataObjectClassProp statusOCP = _CswNbtSchemaModTrnsctn.createObjectClassProp( feedbackOC, new CswNbtWcfMetaDataModel.ObjectClassProp() { PropName = CswNbtObjClassFeedback.StatusPropertyName, FieldType = CswNbtMetaDataFieldType.NbtFieldType.List, ListOptions = "Pending review,Resolved,Awaiting author response" } ); statusOCP.DefaultValue.Field1 = "Pending review"; //indicates the ball is in supports/admins court statusOCP.DefaultValue.Gestalt = "Pending review"; _CswNbtSchemaModTrnsctn.createObjectClassProp( feedbackOC, new CswNbtWcfMetaDataModel.ObjectClassProp() { PropName = CswNbtObjClassFeedback.LoadUserContextPropertyName, FieldType = CswNbtMetaDataFieldType.NbtFieldType.Button } ); CswNbtMetaDataObjectClassProp commentsOCP = _CswNbtSchemaModTrnsctn.createObjectClassProp( feedbackOC, new CswNbtWcfMetaDataModel.ObjectClassProp() { PropName = CswNbtObjClassFeedback.DiscussionPropertyName, FieldType = CswNbtMetaDataFieldType.NbtFieldType.Comments } ); _CswNbtSchemaModTrnsctn.createObjectClassProp( feedbackOC, new CswNbtWcfMetaDataModel.ObjectClassProp() { PropName = CswNbtObjClassFeedback.SelectedNodeIDPropertyName, FieldType = CswNbtMetaDataFieldType.NbtFieldType.Text, ServerManaged = true } ); _CswNbtSchemaModTrnsctn.createObjectClassProp( feedbackOC, new CswNbtWcfMetaDataModel.ObjectClassProp() { PropName = CswNbtObjClassFeedback.ViewPropertyName, //FieldType = CswNbtMetaDataFieldType.NbtFieldType.ViewPickList, FieldType = CswNbtMetaDataFieldType.NbtFieldType.ViewReference, ServerManaged = true } ); _CswNbtSchemaModTrnsctn.createObjectClassProp( feedbackOC, new CswNbtWcfMetaDataModel.ObjectClassProp() { PropName = CswNbtObjClassFeedback.ActionPropertyName, FieldType = CswNbtMetaDataFieldType.NbtFieldType.Text, ServerManaged = true } ); _CswNbtSchemaModTrnsctn.createObjectClassProp( feedbackOC, new CswNbtWcfMetaDataModel.ObjectClassProp() { PropName = CswNbtObjClassFeedback.CurrentViewModePropertyName, FieldType = CswNbtMetaDataFieldType.NbtFieldType.Text, ServerManaged = true } ); //create a default node-type of feedbackobj called feedback CswNbtMetaDataNodeType feedbackNT = _CswNbtSchemaModTrnsctn.MetaData.makeNewNodeType( feedbackOC.ObjectClassId, "Feedback", "System" ); feedbackNT.setNameTemplateText( CswNbtMetaData.MakeTemplateEntry( CswNbtObjClassFeedback.CaseNumberPropertyName ) ); CswNbtMetaDataObjectClass roleObj = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.RoleClass ); //set default permissions Collection<CswNbtNode> roles = roleObj.getNodes( false, true ); foreach( CswNbtObjClassRole role in roles ) { _CswNbtSchemaModTrnsctn.Permit.set( Security.CswNbtPermit.NodeTypePermission.Create, feedbackNT, role, true ); _CswNbtSchemaModTrnsctn.Permit.set( Security.CswNbtPermit.NodeTypePermission.View, feedbackNT, role, true ); _CswNbtSchemaModTrnsctn.Permit.set( Security.CswNbtPermit.NodeTypePermission.Edit, feedbackNT, role, true ); } Int32 sequenceId = _CswNbtSchemaModTrnsctn.makeSequence( new CswSequenceName( "Feedback CaseNo" ), "F", "", 6, 1 ); CswNbtMetaDataNodeTypeProp caseNumberNTP = feedbackNT.getNodeTypePropByObjectClassProp( CswNbtObjClassFeedback.CaseNumberPropertyName ); caseNumberNTP.setSequence( sequenceId ); caseNumberNTP.ReadOnly = true; //default to read-only, but allow it to be changed CswNbtMetaDataNodeTypeProp authorNTP = feedbackNT.getNodeTypePropByObjectClassProp( CswNbtObjClassFeedback.AuthorPropertyName ); authorNTP.removeFromLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Add ); CswNbtMetaDataNodeTypeProp dateNTP = feedbackNT.getNodeTypePropByObjectClassProp( CswNbtObjClassFeedback.DateSubmittedPropertyName ); dateNTP.removeFromLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Add ); CswNbtMetaDataNodeTypeProp viewNTP = feedbackNT.getNodeTypePropByObjectClassProp( CswNbtObjClassFeedback.ViewPropertyName ); viewNTP.removeFromLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Edit ); CswNbtMetaDataNodeTypeProp actionNTP = feedbackNT.getNodeTypePropByObjectClassProp( CswNbtObjClassFeedback.ActionPropertyName ); actionNTP.removeFromLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Edit ); CswNbtMetaDataNodeTypeProp selectedNodeIdNTP = feedbackNT.getNodeTypePropByObjectClassProp( CswNbtObjClassFeedback.SelectedNodeIDPropertyName ); selectedNodeIdNTP.removeFromLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Edit ); CswNbtMetaDataNodeTypeProp currentViewModeNTP = feedbackNT.getNodeTypePropByObjectClassProp( CswNbtObjClassFeedback.CurrentViewModePropertyName ); currentViewModeNTP.removeFromLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Edit ); currentViewModeNTP.removeFromLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Add ); //create the role view for admins CswNbtNode adminRoleNode = _CswNbtSchemaModTrnsctn.Nodes.makeRoleNodeFromRoleName( "Administrator" ); if( null != adminRoleNode ) { CswNbtView feedbackView = _CswNbtSchemaModTrnsctn.makeView(); feedbackView.makeNew( "Feedback", NbtViewVisibility.Role, adminRoleNode.NodeId ); feedbackView.Category = "System"; //add root CswNbtViewRelationship ParentRelationship = feedbackView.AddViewRelationship( feedbackOC, true ); //add properties CswNbtViewProperty caseNumberVP = feedbackView.AddViewProperty( ParentRelationship, caseNumberOCP ); CswNbtViewProperty dateSubmittedVp = feedbackView.AddViewProperty( ParentRelationship, dateSubmittedOCP ); CswNbtViewProperty categoryVP = feedbackView.AddViewProperty( ParentRelationship, categoryOCP ); CswNbtViewProperty authorVP = feedbackView.AddViewProperty( ParentRelationship, authorOCP ); CswNbtViewProperty subjectVP = feedbackView.AddViewProperty( ParentRelationship, subjectOCP ); CswNbtViewProperty statusVP = feedbackView.AddViewProperty( ParentRelationship, statusOCP ); CswNbtViewProperty commentsVP = feedbackView.AddViewProperty( ParentRelationship, commentsOCP ); caseNumberVP.Order = 1; dateSubmittedVp.Order = 2; categoryVP.Order = 3; authorVP.Order = 4; subjectVP.Order = 5; statusVP.Order = 6; commentsVP.Order = 7; caseNumberVP.Width = 15; dateSubmittedVp.Width = 20; categoryVP.Width = 20; authorVP.Width = 20; subjectVP.Width = 25; statusVP.Width = 20; commentsVP.Width = 100; feedbackView.SetViewMode( NbtViewRenderingMode.Grid ); CswNbtViewPropertyFilter feedbackViewFilter = feedbackView.AddViewPropertyFilter( statusVP, FilterMode: CswNbtPropFilterSql.PropertyFilterMode.Equals, Value: "Pending review", ShowAtRuntime: true ); feedbackView.save(); } // create the global view for all users to view their own feedback CswNbtView myFeedbackView = _CswNbtSchemaModTrnsctn.makeView(); myFeedbackView.makeNew( "My Feedback", NbtViewVisibility.Global ); myFeedbackView.Category = "System"; //add root CswNbtViewRelationship myParentRelationship = myFeedbackView.AddViewRelationship( feedbackOC, true ); //add properties CswNbtViewProperty myCaseNumberVP = myFeedbackView.AddViewProperty( myParentRelationship, caseNumberOCP ); CswNbtViewProperty myDateSubmittedVp = myFeedbackView.AddViewProperty( myParentRelationship, dateSubmittedOCP ); CswNbtViewProperty myCategoryVP = myFeedbackView.AddViewProperty( myParentRelationship, categoryOCP ); CswNbtViewProperty myAuthorVP = myFeedbackView.AddViewProperty( myParentRelationship, authorOCP ); CswNbtViewProperty mySubjectVP = myFeedbackView.AddViewProperty( myParentRelationship, subjectOCP ); CswNbtViewProperty myStatusVP = myFeedbackView.AddViewProperty( myParentRelationship, statusOCP ); CswNbtViewProperty myCommentsVP = myFeedbackView.AddViewProperty( myParentRelationship, commentsOCP ); myCaseNumberVP.Order = 1; myDateSubmittedVp.Order = 2; myCategoryVP.Order = 3; myAuthorVP.Order = 4; mySubjectVP.Order = 5; myStatusVP.Order = 6; myCommentsVP.Order = 7; myCaseNumberVP.Width = 15; myDateSubmittedVp.Width = 20; myCategoryVP.Width = 20; myAuthorVP.Width = 20; mySubjectVP.Width = 25; myStatusVP.Width = 20; myCommentsVP.Width = 100; myFeedbackView.SetViewMode( NbtViewRenderingMode.Grid ); //observe "me", this is voodoo (or magic...w/e) and sets it to the current user (from steve) CswNbtViewPropertyFilter myFeedbackViewFilter = myFeedbackView.AddViewPropertyFilter( myAuthorVP, FilterMode: CswNbtPropFilterSql.PropertyFilterMode.Equals, Value: "me", ShowAtRuntime: false ); myFeedbackView.save(); }//Update()
public override void update() { // Set up label printing nodetypes CswNbtMetaDataObjectClass PrinterOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.PrinterClass ); CswNbtMetaDataObjectClass JobOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.PrintJobClass ); CswNbtMetaDataObjectClassProp JobCreatedDateOCP = JobOC.getObjectClassProp( CswNbtObjClassPrintJob.PropertyName.CreatedDate ); CswNbtMetaDataObjectClassProp JobJobNoOCP = JobOC.getObjectClassProp( CswNbtObjClassPrintJob.PropertyName.JobNo ); CswNbtMetaDataObjectClassProp JobJobStateOCP = JobOC.getObjectClassProp( CswNbtObjClassPrintJob.PropertyName.JobState ); CswNbtMetaDataObjectClassProp JobPrinterOCP = JobOC.getObjectClassProp( CswNbtObjClassPrintJob.PropertyName.Printer ); CswNbtMetaDataObjectClassProp JobRequestedByOCP = JobOC.getObjectClassProp( CswNbtObjClassPrintJob.PropertyName.RequestedBy ); CswNbtMetaDataObjectClassProp JobErrorOCP = JobOC.getObjectClassProp( CswNbtObjClassPrintJob.PropertyName.ErrorInfo ); CswNbtMetaDataObjectClassProp JobLabelOCP = JobOC.getObjectClassProp( CswNbtObjClassPrintJob.PropertyName.Label ); CswNbtMetaDataObjectClassProp JobEndedDateOCP = JobOC.getObjectClassProp( CswNbtObjClassPrintJob.PropertyName.EndedDate ); // Printer NodeType { CswNbtMetaDataNodeType PrinterNT = _CswNbtSchemaModTrnsctn.MetaData.makeNewNodeType( new CswNbtWcfMetaDataModel.NodeType( PrinterOC ) { NodeTypeName = "Printer", Category = "System" } ); PrinterNT.setNameTemplateText( CswNbtMetaData.MakeTemplateEntry( CswNbtObjClassPrinter.PropertyName.Name ) ); // Add a job grid CswNbtMetaDataNodeTypeTab JobGridTab = _CswNbtSchemaModTrnsctn.MetaData.makeNewTab( PrinterNT, "Jobs", 2 ); CswNbtMetaDataNodeTypeProp JobGridNTP = _CswNbtSchemaModTrnsctn.MetaData.makeNewProp( new CswNbtWcfMetaDataModel.NodeTypeProp( PrinterNT, _CswNbtSchemaModTrnsctn.MetaData.getFieldType( CswNbtMetaDataFieldType.NbtFieldType.Grid ), "Jobs" ) ); JobGridNTP.updateLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Edit, true, JobGridTab.TabId ); CswNbtView JobGridView = _CswNbtSchemaModTrnsctn.restoreView( JobGridNTP.ViewId ); JobGridView.Root.ChildRelationships.Clear(); CswNbtViewRelationship PrinterRel = JobGridView.AddViewRelationship( PrinterOC, true ); CswNbtViewRelationship JobRel = JobGridView.AddViewRelationship( PrinterRel, NbtViewPropOwnerType.Second, JobPrinterOCP, true ); CswNbtViewProperty JobNoVP = JobGridView.AddViewProperty( JobRel, JobJobNoOCP ); CswNbtViewProperty RequestedByVP = JobGridView.AddViewProperty( JobRel, JobRequestedByOCP ); CswNbtViewProperty CreatedDateVP = JobGridView.AddViewProperty( JobRel, JobCreatedDateOCP ); CswNbtViewProperty JobStateVP = JobGridView.AddViewProperty( JobRel, JobJobStateOCP ); CswNbtViewProperty JobLabelVP = JobGridView.AddViewProperty( JobRel, JobLabelOCP ); JobNoVP.Order = 1; RequestedByVP.Order = 2; CreatedDateVP.Order = 3; JobStateVP.Order = 4; JobLabelVP.Order = 5; JobGridView.save(); } // Print Job NodeType { CswNbtMetaDataNodeType JobNT = _CswNbtSchemaModTrnsctn.MetaData.makeNewNodeType( new CswNbtWcfMetaDataModel.NodeType( JobOC ) { NodeTypeName = "Print Job", Category = "System" } ); JobNT.setNameTemplateText( CswNbtMetaData.MakeTemplateEntry( CswNbtObjClassPrintJob.PropertyName.JobNo ) ); CswNbtMetaDataNodeTypeProp JobJobNoNTP = JobNT.getNodeTypePropByObjectClassProp( CswNbtObjClassPrintJob.PropertyName.JobNo ); Int32 SequenceId = _CswNbtSchemaModTrnsctn.makeSequence( new CswSequenceName( "printjob" ), "PJ", "", 4, 1 ); JobJobNoNTP.setSequence( SequenceId ); JobJobNoNTP.ReadOnly = true; // Notification: My print job failed { CswNbtMetaDataObjectClass MailReportOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.MailReportClass ); CswNbtMetaDataNodeType MailReportNT = MailReportOC.FirstNodeType; if( null != MailReportNT ) { CswNbtMetaDataNodeTypeProp NameNTP = MailReportNT.getNodeTypeProp( "Name" ); CswNbtObjClassMailReport PrintJobNotif = _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId( MailReportNT.NodeTypeId, CswNbtNodeCollection.MakeNodeOperation.WriteNode ); if( null != NameNTP ) { PrintJobNotif.Node.Properties[NameNTP].AsText.Text = "My Print Job Failures"; } PrintJobNotif.Type.Value = CswNbtObjClassMailReport.TypeOptionView; PrintJobNotif.Enabled.Checked = Tristate.True; PrintJobNotif.Event.Value = CswNbtObjClassMailReport.EventOption.Edit.ToString(); PrintJobNotif.Message.Text = "One of your print jobs has failed."; PrintJobNotif.OutputFormat.Value = MailRptFormatOptions.Link.ToString(); PrintJobNotif.TargetType.SelectedNodeTypeIds.Add( JobNT.NodeTypeId.ToString() ); CswRateInterval Rate = _CswNbtSchemaModTrnsctn.makeRateInterval(); Rate.setHourly( 1, DateTime.Now ); PrintJobNotif.DueDateInterval.RateInterval = Rate; PrintJobNotif.postChanges( false ); CswNbtView NotifView = _CswNbtSchemaModTrnsctn.restoreView( PrintJobNotif.ReportView.ViewId ); // Print jobs... CswNbtViewRelationship JobRel = NotifView.AddViewRelationship( JobOC, false ); // ...where the state is error... NotifView.AddViewPropertyAndFilter( JobRel, JobJobStateOCP, Value: CswNbtObjClassPrintJob.StateOption.Error, FilterMode: CswNbtPropFilterSql.PropertyFilterMode.Equals ); // ...and the requestor was me... NotifView.AddViewPropertyAndFilter( JobRel, JobRequestedByOCP, Value: "me", FilterMode: CswNbtPropFilterSql.PropertyFilterMode.Equals ); NotifView.save(); } } } // Printers View { CswNbtView PrintersView = _CswNbtSchemaModTrnsctn.makeView(); PrintersView.saveNew( "Printers", NbtViewVisibility.Global ); PrintersView.Category = "System"; PrintersView.ViewMode = NbtViewRenderingMode.Tree; PrintersView.AddViewRelationship( PrinterOC, true ); PrintersView.save(); } // Print Job Errors View { CswNbtView ErrorsView = _CswNbtSchemaModTrnsctn.makeView(); ErrorsView.saveNew( "Print Job Errors", NbtViewVisibility.Global ); ErrorsView.Category = "System"; ErrorsView.ViewMode = NbtViewRenderingMode.Grid; CswNbtViewRelationship JobRel = ErrorsView.AddViewRelationship( JobOC, true ); CswNbtViewProperty JobNoVP = ErrorsView.AddViewProperty( JobRel, JobJobNoOCP ); CswNbtViewProperty RequestedByVP = ErrorsView.AddViewProperty( JobRel, JobRequestedByOCP ); //CswNbtViewProperty CreatedDateVP = ErrorsView.AddViewProperty( JobRel, JobCreatedDateOCP ); CswNbtViewProperty JobStateVP = ErrorsView.AddViewProperty( JobRel, JobJobStateOCP ); CswNbtViewProperty JobLabelVP = ErrorsView.AddViewProperty( JobRel, JobLabelOCP ); CswNbtViewProperty ErrorVP = ErrorsView.AddViewProperty( JobRel, JobErrorOCP ); CswNbtViewProperty EndedDateVP = ErrorsView.AddViewProperty( JobRel, JobEndedDateOCP ); JobNoVP.Order = 1; RequestedByVP.Order = 2; //CreatedDateVP.Order = 3; EndedDateVP.Order = 4; JobStateVP.Order = 5; JobLabelVP.Order = 6; ErrorVP.Order = 7; ErrorsView.AddViewPropertyFilter( JobStateVP, Value: CswNbtObjClassPrintJob.StateOption.Error, FilterMode: CswNbtPropFilterSql.PropertyFilterMode.Equals ); ErrorsView.AddViewPropertyFilter( EndedDateVP, Value: "today-7", FilterMode: CswNbtPropFilterSql.PropertyFilterMode.GreaterThanOrEquals ); ErrorsView.save(); } } //Update()
public override void update() { #region part 1 - container group NT CswNbtMetaDataObjectClass containerGroupOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.ContainerGroupClass ); CswNbtMetaDataNodeType containerGroupNT = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( "Container Group" ); if( null == containerGroupNT ) { containerGroupNT = _CswNbtSchemaModTrnsctn.MetaData.makeNewNodeType( containerGroupOC.ObjectClassId, "Container Group", "MLM (demo)" ); } CswNbtMetaDataNodeTypeProp barcodeNTP = containerGroupNT.getNodeTypePropByObjectClassProp( CswNbtObjClassContainerGroup.PropertyName.Barcode ); if( null != barcodeNTP ) { //set the sequence id of the NTP if( Int32.MinValue == barcodeNTP.SequenceId ) { int containerGroupSequenceId = _CswNbtSchemaModTrnsctn.makeSequence( new CswSequenceName( "ContainerGroup" ), "G", "", 6, 0 ); barcodeNTP.setSequence( containerGroupSequenceId ); } } CswNbtMetaDataNodeTypeProp nameNTP = containerGroupNT.getNodeTypePropByObjectClassProp( CswNbtObjClassContainerGroup.PropertyName.Name ); nameNTP.updateLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Add, null, false ); string template = CswNbtMetaData.MakeTemplateEntry( nameNTP.PropName ); template += " " + CswNbtMetaData.MakeTemplateEntry( barcodeNTP.PropName ); containerGroupNT.setNameTemplateText( template ); _CswNbtSchemaModTrnsctn.createModuleNodeTypeJunction( CswNbtModuleName.CISPro, containerGroupNT.NodeTypeId ); //create demo view CswNbtView containerGroupView = _CswNbtSchemaModTrnsctn.restoreView( "Container Groups" ); if( null == containerGroupView ) { containerGroupView = _CswNbtSchemaModTrnsctn.makeNewView( "Container Groups", NbtViewVisibility.Global ); containerGroupView.Category = "MLM (demo)"; containerGroupView.SetViewMode( NbtViewRenderingMode.Tree ); containerGroupView.IsDemo = true; containerGroupView.AddViewRelationship( containerGroupNT, true ); containerGroupView.save(); } #endregion #region part 2 - new container props CswNbtMetaDataNodeType containerNT = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( "Container" ); if( null != containerNT ) { CswNbtMetaDataNodeTypeProp lotControlledNTP = containerNT.getNodeTypePropByObjectClassProp( CswNbtObjClassContainer.PropertyName.LotControlled ); lotControlledNTP.removeFromAllLayouts(); CswNbtMetaDataNodeTypeProp requisitionableNTP = containerNT.getNodeTypePropByObjectClassProp( CswNbtObjClassContainer.PropertyName.Requisitionable ); requisitionableNTP.removeFromAllLayouts(); CswNbtMetaDataNodeTypeProp reservedForNTP = containerNT.getNodeTypePropByObjectClassProp( CswNbtObjClassContainer.PropertyName.ReservedFor ); reservedForNTP.removeFromAllLayouts(); if( _CswNbtSchemaModTrnsctn.Modules.IsModuleEnabled( CswNbtModuleName.MLM ) ) { CswNbtMetaDataNodeTypeTab cmgTab = containerNT.getNodeTypeTab( "Central Material Group" ); if( null == cmgTab ) { cmgTab = _CswNbtSchemaModTrnsctn.MetaData.makeNewTab( containerNT, "Central Material Group", containerNT.getMaximumTabOrder() + 1 ); } lotControlledNTP.updateLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Edit, false, cmgTab.TabId ); requisitionableNTP.updateLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Edit, false, cmgTab.TabId ); reservedForNTP.updateLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Edit, false, cmgTab.TabId ); } } #endregion }