public override void update() { // Create a demo mail report (notification) CswNbtMetaDataObjectClass UserOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.UserClass ); CswNbtMetaDataObjectClass MailReportOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.MailReportClass ); CswNbtMetaDataNodeType MailReportNT = MailReportOC.FirstNodeType; CswNbtMetaDataNodeTypeProp MailReportNameNTP = MailReportNT.getNodeTypeProp( "Name" ); CswNbtMetaDataNodeType UserNT = UserOC.FirstNodeType; CswNbtMetaDataNodeTypeProp UserLockedNTP = UserNT.getNodeTypePropByObjectClassProp( CswNbtObjClassUser.PropertyName.AccountLocked ); if( null != MailReportNT && null != UserNT ) { CswNbtObjClassMailReport MailReportNode = _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId( MailReportNT.NodeTypeId, CswNbtNodeCollection.MakeNodeOperation.WriteNode ); if( null != MailReportNameNTP ) { MailReportNode.Node.Properties[MailReportNameNTP].AsText.Text = "Locked Users Notification"; } MailReportNode.OutputFormat.Value = "link"; MailReportNode.Type.Value = CswNbtObjClassMailReport.TypeOptionView; MailReportNode.Event.Value = CswNbtObjClassMailReport.EventOption.Edit.ToString(); MailReportNode.TargetType.SelectedNodeTypeIds.Add( UserNT.NodeTypeId.ToString() ); MailReportNode.Message.Text = "The following user accounts have been locked:"; MailReportNode.Enabled.Checked = Tristate.False; MailReportNode.IsDemo = true; CswRateInterval HourlyRate = _CswNbtSchemaModTrnsctn.makeRateInterval(); HourlyRate.setHourly( 1, DateTime.Now ); MailReportNode.DueDateInterval.RateInterval = HourlyRate; CswNbtObjClassUser AdminUser = _CswNbtSchemaModTrnsctn.Nodes.makeUserNodeFromUsername( "admin" ); if( null != AdminUser ) { MailReportNode.Recipients.AddUser( AdminUser.UserId ); } MailReportNode.postChanges( true ); CswNbtView ReportView = _CswNbtSchemaModTrnsctn.restoreView( MailReportNode.ReportView.ViewId ); ReportView.Root.ChildRelationships.Clear(); CswNbtViewRelationship UserRel = ReportView.AddViewRelationship( UserNT, false ); ReportView.AddViewPropertyAndFilter( UserRel, UserLockedNTP, Tristate.True.ToString() ); ReportView.save(); } // if( null != MailReportNT ) }//Update()
public void HourlyTest() { CswRateInterval r = new CswRateInterval(_CswResources); DateTime StartDate = new DateTime(2012, 10, 5); for (Int32 h = 1; h < 24; h++) { r.setHourly(h, StartDate); Assert.AreEqual(r.getFirst(), StartDate); DateTime CurrentDate = StartDate; for (Int32 d = 1; d <= 10; d++) { CurrentDate = CurrentDate.AddHours(h); Assert.AreEqual(r.getNext(CurrentDate), CurrentDate.AddHours(h)); } } }
public override void update() { CswNbtMetaDataObjectClass MailReportOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.MailReportClass ); CswNbtMetaDataNodeType MailReportNT = MailReportOC.FirstNodeType; CswNbtMetaDataNodeTypeProp MailReportNameNTP = MailReportNT.getNodeTypeProp( "Name" ); if( null != MailReportNT ) { if( _CswNbtSchemaModTrnsctn.Modules.IsModuleEnabled( CswNbtModuleName.SI ) ) { // Notification for Inspection status = Action Required CswNbtMetaDataObjectClass InspectionOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.InspectionDesignClass ); foreach( CswNbtMetaDataNodeType InspectionNT in InspectionOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeProp InspectionStatusNTP = InspectionNT.getNodeTypePropByObjectClassProp( CswNbtObjClassInspectionDesign.PropertyName.Status ); // Make new mail report for old notification CswNbtObjClassMailReport MailReportNode = _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId( MailReportNT.NodeTypeId, CswNbtNodeCollection.MakeNodeOperation.WriteNode ); if( null != MailReportNameNTP ) { MailReportNode.Node.Properties[MailReportNameNTP].AsText.Text = InspectionNT.NodeTypeName + " Action Required Notification"; } MailReportNode.OutputFormat.Value = "link"; MailReportNode.Type.Value = CswNbtObjClassMailReport.TypeOptionView; MailReportNode.Event.Value = CswNbtObjClassMailReport.EventOption.Edit.ToString(); MailReportNode.TargetType.SelectedNodeTypeIds.Add( InspectionNT.NodeTypeId.ToString() ); MailReportNode.Message.Text = "The following inspections have been marked Action Required:"; MailReportNode.Enabled.Checked = Tristate.True; MailReportNode.IsDemo = true; CswRateInterval HourlyRate = _CswNbtSchemaModTrnsctn.makeRateInterval(); HourlyRate.setHourly( 2, DateTime.Now ); MailReportNode.DueDateInterval.RateInterval = HourlyRate; if( "scu" == _CswNbtSchemaModTrnsctn.Accessid ) { // Subscribe existing user (id: 24917) MailReportNode.Recipients.AddUser( new CswPrimaryKey( "nodes", 24917 ) ); MailReportNode.Enabled.Checked = Tristate.True; } else { MailReportNode.Enabled.Checked = Tristate.False; } MailReportNode.postChanges( true ); CswNbtView ReportView = _CswNbtSchemaModTrnsctn.restoreView( MailReportNode.ReportView.ViewId ); ReportView.Root.ChildRelationships.Clear(); CswNbtViewRelationship InspRel = ReportView.AddViewRelationship( InspectionNT, false ); ReportView.AddViewPropertyAndFilter( InspRel, InspectionStatusNTP, CswNbtObjClassInspectionDesign.InspectionStatus.ActionRequired.ToString() ); ReportView.save(); } // foreach( CswNbtMetaDataNodeType InspectionNT in InspectionOC.getNodeTypes() ) } // if(_CswNbtSchemaModTrnsctn.Modules.IsModuleEnabled( CswNbtModuleName.SI) ) if( _CswNbtSchemaModTrnsctn.Modules.IsModuleEnabled( CswNbtModuleName.IMCS ) ) { // Notification for new Problems CswNbtMetaDataObjectClass ProblemOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.ProblemClass ); foreach( CswNbtMetaDataNodeType ProblemNT in ProblemOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeProp ProblemClosedNTP = ProblemNT.getNodeTypePropByObjectClassProp( CswNbtObjClassProblem.PropertyName.Closed ); // Make new mail report for old notification CswNbtObjClassMailReport MailReportNode = _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId( MailReportNT.NodeTypeId, CswNbtNodeCollection.MakeNodeOperation.WriteNode ); if( null != MailReportNameNTP ) { MailReportNode.Node.Properties[MailReportNameNTP].AsText.Text = "New " + ProblemNT.NodeTypeName + " Notification"; } MailReportNode.OutputFormat.Value = "link"; MailReportNode.Type.Value = CswNbtObjClassMailReport.TypeOptionView; MailReportNode.Event.Value = CswNbtObjClassMailReport.EventOption.Edit.ToString(); MailReportNode.TargetType.SelectedNodeTypeIds.Add( ProblemNT.NodeTypeId.ToString() ); MailReportNode.Message.Text = "The following problems have been opened:"; MailReportNode.IsDemo = true; CswRateInterval HourlyRate = _CswNbtSchemaModTrnsctn.makeRateInterval(); HourlyRate.setHourly( 2, DateTime.Now ); MailReportNode.DueDateInterval.RateInterval = HourlyRate; if( "cabot" == _CswNbtSchemaModTrnsctn.Accessid ) { // Subscribe existing user (id: 24786) MailReportNode.Recipients.AddUser( new CswPrimaryKey( "nodes", 24786 ) ); MailReportNode.Enabled.Checked = Tristate.True; } else { MailReportNode.Enabled.Checked = Tristate.False; } MailReportNode.postChanges( true ); CswNbtView ReportView = _CswNbtSchemaModTrnsctn.restoreView( MailReportNode.ReportView.ViewId ); ReportView.Root.ChildRelationships.Clear(); CswNbtViewRelationship ProbRel = ReportView.AddViewRelationship( ProblemNT, false ); ReportView.AddViewPropertyAndFilter( ProbRel, ProblemClosedNTP, Tristate.False.ToString() ); ReportView.save(); } // foreach( CswNbtMetaDataNodeType ProblemNT in ProblemOC.getNodeTypes() ) } // else if(_CswNbtSchemaModTrnsctn.Modules.IsModuleEnabled( CswNbtModuleName.IMCS) ) } // if( null != MailReportNT ) }//Update()
public override void update() { #region OC Props CswNbtMetaDataObjectClass InventoryLevelOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.InventoryLevelClass ); CswNbtMetaDataObjectClassProp MaterialProp = InventoryLevelOC.getObjectClassProp( CswNbtObjClassInventoryLevel.PropertyName.Material ); CswNbtMetaDataObjectClassProp LocationProp = InventoryLevelOC.getObjectClassProp( CswNbtObjClassInventoryLevel.PropertyName.Location ); CswNbtMetaDataObjectClassProp TypeProp = InventoryLevelOC.getObjectClassProp( CswNbtObjClassInventoryLevel.PropertyName.Type ); CswNbtMetaDataObjectClassProp LevelProp = InventoryLevelOC.getObjectClassProp( CswNbtObjClassInventoryLevel.PropertyName.Level ); CswNbtMetaDataObjectClassProp CurrentQuantityProp = InventoryLevelOC.getObjectClassProp( CswNbtObjClassInventoryLevel.PropertyName.CurrentQuantity ); CswNbtMetaDataObjectClassProp StatusProp = InventoryLevelOC.getObjectClassProp( CswNbtObjClassInventoryLevel.PropertyName.Status ); CswNbtMetaDataObjectClass LocationOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.LocationClass ); CswNbtMetaDataObjectClassProp LocInventoryGroupProp = LocationOC.getObjectClassProp( CswNbtObjClassLocation.PropertyName.InventoryGroup ); CswNbtMetaDataObjectClass InventoryGroupPermissionOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.InventoryGroupPermissionClass ); CswNbtMetaDataObjectClassProp IGPInventoryGroupProp = InventoryGroupPermissionOC.getObjectClassProp( CswNbtObjClassInventoryGroupPermission.PropertyName.InventoryGroup ); CswNbtMetaDataObjectClassProp IGPWorkUnitProp = InventoryGroupPermissionOC.getObjectClassProp( CswNbtObjClassInventoryGroupPermission.PropertyName.WorkUnit ); CswNbtMetaDataObjectClassProp IGPRoleProp = InventoryGroupPermissionOC.getObjectClassProp( CswNbtObjClassInventoryGroupPermission.PropertyName.Role ); CswNbtMetaDataObjectClass UserOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.UserClass ); CswNbtMetaDataObjectClassProp WorkUnitProp = UserOC.getObjectClassProp( CswNbtObjClassUser.PropertyName.WorkUnit ); CswNbtMetaDataObjectClassProp RoleProp = UserOC.getObjectClassProp( CswNbtObjClassUser.PropertyName.Role ); #endregion OC Props #region SQL Query Template String SqlText = @" select il.op_{0} as Material, il.op_{1} as LOCATION, il.op_{2} as TYPE, il.op_{3} as inventorylevel, il.op_{4} as CurrentQuantity, il.op_{5} as Status from ocinventorylevelclass il inner join oclocationclass l on l.nodeid = il.op_{1}_fk inner join ocinventorygroupclass ig on ig.nodeid = l.op_{6}_fk inner join (select * from ocinventorygrouppermissioncl) igp on igp.op_{7}_fk = ig.nodeid inner join ocworkunitclass wu on wu.nodeid = igp.op_{8}_fk inner join (select * from ocuserclass) u on u.op_{9}_fk = wu.nodeid where il.op_{5} != 'Ok' and u.op_{11}_fk = igp.op_{10}_fk and u.nodeid = {12}"; #endregion SQL Query Template String SelectText = String.Format( SqlText, MaterialProp.PropId, LocationProp.PropId, TypeProp.PropId, LevelProp.PropId, CurrentQuantityProp.PropId, StatusProp.PropId, LocInventoryGroupProp.PropId, IGPInventoryGroupProp.PropId, IGPWorkUnitProp.PropId, WorkUnitProp.PropId, IGPRoleProp.PropId, RoleProp.PropId, "{userid}" ); CswNbtMetaDataObjectClass ReportOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.ReportClass ); CswNbtMetaDataNodeType ReportNT = ReportOC.FirstNodeType; if( null != ReportNT ) { CswNbtObjClassReport ReportNode = _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId( ReportNT.NodeTypeId, CswNbtNodeCollection.MakeNodeOperation.WriteNode ); ReportNode.ReportName.Text = "Deficient Inventory Levels"; ReportNode.Category.Text = "Containers"; ReportNode.SQL.Text = SelectText; ReportNode.postChanges( false ); CswNbtMetaDataObjectClass MailReportOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.MailReportClass ); CswNbtMetaDataNodeType MailReportNT = MailReportOC.FirstNodeType; if( null != MailReportNT ) { CswNbtMetaDataNodeTypeProp MailReportNameNTP = MailReportNT.getNodeTypeProp( "Name" ); CswNbtObjClassMailReport MailReportNode = _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId( MailReportNT.NodeTypeId, CswNbtNodeCollection.MakeNodeOperation.WriteNode ); if( null != MailReportNameNTP ) { MailReportNode.Node.Properties[MailReportNameNTP].AsText.Text = "Deficient Inventory Levels"; } MailReportNode.OutputFormat.Value = "link"; MailReportNode.Type.Value = CswNbtObjClassMailReport.TypeOptionReport; MailReportNode.Report.RelatedNodeId = ReportNode.NodeId; MailReportNode.Message.Text = "The following levels are above maximum inventory or below minimum inventory:"; MailReportNode.Enabled.Checked = Tristate.True; CswRateInterval DailyRate = _CswNbtSchemaModTrnsctn.makeRateInterval(); DailyRate.setHourly( 24, DateTime.Today ); MailReportNode.DueDateInterval.RateInterval = DailyRate; MailReportNode.postChanges( true ); } } }//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() { CswNbtMetaDataObjectClass MailReportGroupOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass(CswEnumNbtObjectClass.MailReportGroupClass); CswNbtObjClassMailReportGroup DemoMailReports = _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId(MailReportGroupOC.FirstNodeType.NodeTypeId, delegate(CswNbtNode NewNode) { CswNbtObjClassMailReportGroup DemoMailReportNode = NewNode; DemoMailReportNode.IsDemo = true; DemoMailReportNode.Name.Text = "Demo Mail Reports"; }); CswNbtMetaDataObjectClass MailReportOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass(CswEnumNbtObjectClass.MailReportClass); foreach (CswNbtObjClassMailReport MailReportNode in MailReportOC.getNodes(false, false, false, true)) { if (MailReportNode.IsDemo) { MailReportNode.MailReportGroup.RelatedNodeId = DemoMailReports.NodeId; MailReportNode.postChanges(false); } } CswNbtMetaDataObjectClass MailReportGroupPermissionOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass(CswEnumNbtObjectClass.MailReportGroupPermissionClass); CswNbtMetaDataObjectClass RoleOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass(CswEnumNbtObjectClass.RoleClass); foreach (CswNbtObjClassRole RoleNode in RoleOC.getNodes(false, false, false, true)) { if (RoleNode.Administrator.Checked == CswEnumTristate.True) { CswNbtObjClassMailReportGroupPermission DemoMailReportGroupPerm = _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId(MailReportGroupPermissionOC.FirstNodeType.NodeTypeId, delegate(CswNbtNode NewNode) { CswNbtObjClassMailReportGroupPermission DemoMailReportPermNode = NewNode; DemoMailReportPermNode.Role.RelatedNodeId = RoleNode.NodeId; DemoMailReportPermNode.ApplyToAllWorkUnits.Checked = CswEnumTristate.True; DemoMailReportPermNode.PermissionGroup.RelatedNodeId = DemoMailReports.NodeId; DemoMailReportPermNode.View.Checked = CswEnumTristate.True; DemoMailReportPermNode.Edit.Checked = CswEnumTristate.True; }); } } CswNbtObjClassMailReportGroup DefaultMailReportGroup = null; foreach (CswNbtObjClassMailReportGroup MailReportGroupNode in MailReportGroupOC.getNodes(false, false, false, true)) { if (MailReportGroupNode.Name.Text == "Default Mail Report Group") { DefaultMailReportGroup = MailReportGroupNode; } } CswNbtView MyExpiringContainersView = _CswNbtSchemaModTrnsctn.restoreView("My Expiring Containers"); if (null != MyExpiringContainersView && null != DefaultMailReportGroup) { CswNbtObjClassMailReport MyExpiringContainersReport = _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId(MailReportOC.FirstNodeType.NodeTypeId, delegate(CswNbtNode NewNode) { CswNbtObjClassMailReport MyExpiringContainersReportNode = NewNode; MyExpiringContainersReportNode.Name.Text = "My Expiring Containers"; MyExpiringContainersReportNode.Type.Value = CswNbtObjClassMailReport.TypeOptionView; MyExpiringContainersReportNode.Event.Value = "Edit"; MyExpiringContainersReportNode.MailReportGroup.RelatedNodeId = DefaultMailReportGroup.NodeId; MyExpiringContainersReportNode.Message.Text = "The following containers will be expiring soon: "; MyExpiringContainersReportNode.Enabled.Checked = CswEnumTristate.False; CswNbtView MyExpContMRView = _CswNbtSchemaModTrnsctn.makeView(); MyExpContMRView.saveNew("My Expiring Containers", CswEnumNbtViewVisibility.Hidden, CopyViewId: MyExpiringContainersView.ViewId.get()); MyExpiringContainersReportNode.ReportView.ViewId = MyExpContMRView.ViewId; CswRateInterval DailyRate = _CswNbtSchemaModTrnsctn.makeRateInterval(); DailyRate.setHourly(24, DateTime.Today); MyExpiringContainersReportNode.DueDateInterval.RateInterval = DailyRate; }); } }