Fix for Scheduled Jobs UI #5354

This PR addresses an issue where null date/time values could cause exceptions when processing job scheduling.
Changes Made:
- Added proper null checks for _startDate, _startTime, _endDate, _endTime, _nextDate, and _nextTime
- Improved parsing safety for _retentionHistory using int.TryParse()
- Added validation to fail early with meaningful error messages

Impact:

Prevents NullReferenceException and InvalidOperationException when date/time fields are missing
This commit is contained in:
Leigh Pointer
2025-06-09 10:29:43 +02:00
parent 64ce69d1c7
commit ff450ca43a

View File

@ -176,10 +176,18 @@
{
job.Interval = int.Parse(_interval);
}
job.StartDate = LocalToUtc(_startDate.Value.Date.Add(_startTime.Value.TimeOfDay));
job.EndDate = LocalToUtc(_endDate.Value.Date.Add(_endTime.Value.TimeOfDay));
job.RetentionHistory = int.Parse(_retentionHistory);
job.NextExecution = LocalToUtc(_nextDate.Value.Date.Add(_nextTime.Value.TimeOfDay));
job.StartDate = _startDate.HasValue && _startTime.HasValue
? LocalToUtc(_startDate.Value.Date.Add(_startTime.Value.TimeOfDay))
: null;
job.EndDate = _endDate.HasValue && _endTime.HasValue
? LocalToUtc(_endDate.Value.Date.Add(_endTime.Value.TimeOfDay))
: null;
job.NextExecution = _nextDate.HasValue && _nextTime.HasValue
? LocalToUtc(_nextDate.Value.Date.Add(_nextTime.Value.TimeOfDay))
: null;
job.RetentionHistory = int.Parse(_retentionHistory);
try
{