From 2de404679f7f3fb562d477c4a3d4788dd167230d Mon Sep 17 00:00:00 2001 From: Craig Hawker Date: Sun, 27 Oct 2024 09:01:09 +0000 Subject: [PATCH 1/2] Potential fix --- .../Configuration/ScheduledExecution/Schedule.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/MFiles.VAF.Extensions/Configuration/ScheduledExecution/Schedule.cs b/MFiles.VAF.Extensions/Configuration/ScheduledExecution/Schedule.cs index 906312f..2a68422 100644 --- a/MFiles.VAF.Extensions/Configuration/ScheduledExecution/Schedule.cs +++ b/MFiles.VAF.Extensions/Configuration/ScheduledExecution/Schedule.cs @@ -108,7 +108,8 @@ public class Schedule // Get the next execution date from the triggers. var next = this.Triggers? .Select(t => t.GetNextExecution(after, timeZoneInfo)) - .Where(d => d.HasValue && d.Value.DateTime != DateTime.MinValue) + .Where(d => d.HasValue) + .Where(d => d.Value.DateTime != DateTime.MinValue) .OrderBy(d => d); return next.Any() ? next.First() : null; } From e9f266dc7149a7ede73f119be778c68134dcdd92 Mon Sep 17 00:00:00 2001 From: Craig Hawker Date: Tue, 29 Oct 2024 09:32:37 +0000 Subject: [PATCH 2/2] Fix for #141 --- .../ScheduledExecution/DailyTriggerTests.cs | 13 +++++++++++++ .../ScheduledExecution/DailyTrigger.cs | 4 ++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/MFiles.VAF.Extensions.Tests/Configuration/ScheduledExecution/DailyTriggerTests.cs b/MFiles.VAF.Extensions.Tests/Configuration/ScheduledExecution/DailyTriggerTests.cs index 1d1e832..209057d 100644 --- a/MFiles.VAF.Extensions.Tests/Configuration/ScheduledExecution/DailyTriggerTests.cs +++ b/MFiles.VAF.Extensions.Tests/Configuration/ScheduledExecution/DailyTriggerTests.cs @@ -30,6 +30,19 @@ TimeZoneInfo timezoneInfo }.GetNextExecution(after, timezoneInfo); Assert.AreEqual(expected?.ToUniversalTime(), execution?.ToUniversalTime()); } + [TestMethod] + public void NullAfterDoesNotThrow + ( + ) + { + var execution = new DailyTrigger() + { + TriggerTimes = new List + { + new TimeSpan(10, 0, 0) + } + }.GetNextExecution(null); + } public static IEnumerable GetNextExecutionData() { diff --git a/MFiles.VAF.Extensions/Configuration/ScheduledExecution/DailyTrigger.cs b/MFiles.VAF.Extensions/Configuration/ScheduledExecution/DailyTrigger.cs index 3110a93..e11e28d 100644 --- a/MFiles.VAF.Extensions/Configuration/ScheduledExecution/DailyTrigger.cs +++ b/MFiles.VAF.Extensions/Configuration/ScheduledExecution/DailyTrigger.cs @@ -59,8 +59,8 @@ public DailyTrigger() timeZoneInfo = timeZoneInfo ?? TimeZoneInfo.Local; // When should we start looking? - var before = after.Value; - after = (after ?? DateTime.UtcNow).ToUniversalTime(); + var before = (after ?? DateTime.UtcNow); + after = before.ToUniversalTime(); // Convert the time into the timezone we're after. after = TimeZoneInfo.ConvertTime(after.Value, timeZoneInfo);