public void updateNextDueDateTest_ExplicitUpdate() { CswNbtObjClassGenerator GeneratorNode = TestData.Nodes.createGeneratorNode(CswEnumRateIntervalType.WeeklyByDay); GeneratorNode.updateNextDueDate(ForceUpdate: false, DeleteFutureNodes: false); Assert.AreEqual(getNextDay(DayOfWeek.Monday), GeneratorNode.NextDueDate.DateTimeValue); }
public void updateNextDueDateTest_DeleteFutureMonthly() { CswNbtObjClassGenerator GeneratorNode = TestData.Nodes.createGeneratorNode(CswEnumRateIntervalType.MonthlyByDate); CswNbtObjClassGenerator ExistingGen = TestData.CswNbtResources.Nodes[GeneratorNode.NodeId]; ExistingGen.updateNextDueDate(ForceUpdate: false, DeleteFutureNodes: true); Assert.AreEqual(getNextDate(15), ExistingGen.NextDueDate.DateTimeValue); }
public void updateNextDueDateTest_ForceUpdateRevert() { CswNbtObjClassGenerator GeneratorNode = TestData.Nodes.createGeneratorNode(CswEnumRateIntervalType.MonthlyByDate); CswNbtObjClassGenerator ExistingGen = TestData.CswNbtResources.Nodes[GeneratorNode.NodeId]; ExistingGen.updateNextDueDate(ForceUpdate: true, DeleteFutureNodes: false); ExistingGen.postChanges(true); Assert.AreEqual(getNextDate(15).AddMonths(1), ExistingGen.NextDueDate.DateTimeValue); DateTime LastDueDate = ExistingGen.DueDateInterval.getLastOccuranceBefore(ExistingGen.NextDueDate.DateTimeValue); if (LastDueDate > DateTime.Today) { ExistingGen.NextDueDate.DateTimeValue = DateTime.Now; ExistingGen.updateNextDueDate(ForceUpdate: true, DeleteFutureNodes: false); ExistingGen.postChanges(true); } Assert.AreEqual(getNextDate(15), ExistingGen.NextDueDate.DateTimeValue); }
public void updateNextDueDateTest_NextDueDateEqualsStartDate() { DayOfWeek ThreeDaysFromNow = DateTime.Today.AddDays(3).DayOfWeek; CswNbtObjClassGenerator GeneratorNode = TestData.Nodes.createGeneratorNode(CswEnumRateIntervalType.WeeklyByDay, Days: new SortedList { { ThreeDaysFromNow, ThreeDaysFromNow } }, StartDate: DateTime.Today.AddDays(3), WarningDays: 5); Assert.AreEqual(GeneratorNode.DueDateInterval.getStartDate(), GeneratorNode.NextDueDate.DateTimeValue); CswNbtObjClassGenerator ExistingGen = TestData.CswNbtResources.Nodes[GeneratorNode.NodeId]; ExistingGen.updateNextDueDate(ForceUpdate: true, DeleteFutureNodes: false); Assert.AreEqual(DateTime.Today.AddDays(10), ExistingGen.NextDueDate.DateTimeValue); }
private void _processGenerator(CswNbtResources CswNbtResources, CswNbtObjClassGenerator CurrentGenerator) { try { // case 28069 // It should not be possible to make more than 24 nodes per parent in a single day, // since the fastest interval is 1 hour, and we're not creating things into the past anymore. // Therefore, disable anything that is erroneously spewing things. if (CurrentGenerator.GeneratedNodeCount(DateTime.Today) >= (24 * CurrentGenerator.TargetParents.Count)) { string Message = "Disabled due to error: Generated too many " + CurrentGenerator.TargetType.SelectedNodeTypeNames() + " targets in a single day"; _StatusMessage += Message + "; "; CurrentGenerator.Enabled.Checked = CswEnumTristate.False; CurrentGenerator.RunStatus.AddComment(Message); CurrentGenerator.postChanges(false); } else { CswNbtActGenerateNodes CswNbtActGenerateNodes = new CswNbtActGenerateNodes(CswNbtResources); bool Finished = CswNbtActGenerateNodes.makeNode(CurrentGenerator.Node); if (Finished) // case 26111 { string Message = "Created all " + CurrentGenerator.TargetType.SelectedNodeTypeNames() + " target(s) for " + CurrentGenerator.NextDueDate.DateTimeValue.Date.ToShortDateString(); CurrentGenerator.RunStatus.AddComment(Message); CurrentGenerator.updateNextDueDate(ForceUpdate: true, DeleteFutureNodes: false); CurrentGenerator.postChanges(false); } _StatusMessage += CurrentGenerator.Description.Text + "; "; } // if-else( CurrentGenerator.GeneratedNodeCount( DateTime.Today ) >= 24 ) } //try catch (Exception Exception) { string Message = "Unable to process generator " + CurrentGenerator.Description.Text + ", which will now be disabled, due to the following exception: " + Exception.Message; _StatusMessage += Message + "; "; CurrentGenerator.Enabled.Checked = CswEnumTristate.False; CurrentGenerator.RunStatus.AddComment("Disabled due to exception: " + Exception.Message); CurrentGenerator.postChanges(false); CswNbtResources.logError(new CswDniException(Message)); } }