From 6b264dba6061121495e0a020b384cf5b8d02701b Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 8 Nov 2022 15:09:54 -0500 Subject: [PATCH] Fixed an infinite loop in schedule item. The NextStart property was setting itself instead of the privete nextStart value which made it go into an infinite loop and caused the instance to crash. I also added docs to public methods while I was there. --- .../Services/Scheduling/ScheduleItem.cs | 78 ++++++++++++++++++- 1 file changed, 77 insertions(+), 1 deletion(-) diff --git a/DNN Platform/Library/Services/Scheduling/ScheduleItem.cs b/DNN Platform/Library/Services/Scheduling/ScheduleItem.cs index e0eb90e3f21..3f2e48b8d75 100644 --- a/DNN Platform/Library/Services/Scheduling/ScheduleItem.cs +++ b/DNN Platform/Library/Services/Scheduling/ScheduleItem.cs @@ -11,6 +11,9 @@ namespace DotNetNuke.Services.Scheduling using DotNetNuke.Entities; using DotNetNuke.Entities.Modules; + /// + /// Represents one item in the scheduler. + /// [Serializable] public class ScheduleItem : BaseEntityInfo, IHydratable { @@ -40,16 +43,34 @@ public ScheduleItem() this.ScheduleStartDate = Null.NullDate; } + /// + /// Gets or sets the the event this item attaches to. + /// public string AttachToEvent { get; set; } + /// + /// Gets or sets a value indicating whether cath-up is enabled. + /// public bool CatchUpEnabled { get; set; } + /// + /// Gets or sets a value indicating whether the item is enabled. + /// public bool Enabled { get; set; } + /// + /// Gets or sets the schedule start date. + /// public DateTime ScheduleStartDate { get; set; } + /// + /// Gets or sets the friednly name for the item. + /// public string FriendlyName { get; set; } + /// + /// Gets or sets the next start date. + /// public virtual DateTime NextStart { get @@ -64,32 +85,68 @@ public virtual DateTime NextStart set { - this.NextStart = value; + this.nextStart = value; } } + /// + /// Gets or sets the object dependencies. + /// public string ObjectDependencies { get; set; } + /// + /// Gets or sets a value indicating how many history items to keep. + /// public int RetainHistoryNum { get; set; } + /// + /// Gets or sets the retry time lapse value. + /// public int RetryTimeLapse { get; set; } + /// + /// Gets or sets the unit of measure for the retry time lapse value. + /// public string RetryTimeLapseMeasurement { get; set; } + /// + /// Gets or sets the ID of the scheduled item. + /// public int ScheduleID { get; set; } + /// + /// Gets or sets the servers this task should run on. + /// public string Servers { get; set; } + /// + /// Gets or sets the recurrence time lapse value. + /// public int TimeLapse { get; set; } + /// + /// Gets or sets the unit of measure for the recurrence time lapse value. + /// public string TimeLapseMeasurement { get; set; } + /// + /// Gets or sets the full type name. + /// public string TypeFullName { get; set; } + /// + /// Gets or sets the process group. + /// public int ProcessGroup { get; set; } + /// + /// Gets or sets the . + /// public ScheduleSource ScheduleSource { get; set; } + /// + /// Gets or sets the ID of the running thread. + /// public int ThreadID { get; set; } /// @@ -112,6 +169,11 @@ public virtual void Fill(IDataReader dr) this.FillInternal(dr); } + /// + /// Gets or sets a value indicating whether the item has object dependencies. + /// + /// A string representing the name of the object dependencies. + /// A value indicating whether the item has object dependencies. public bool HasObjectDependencies(string strObjectDependencies) { if (strObjectDependencies.IndexOf(",") > -1) @@ -135,11 +197,21 @@ public bool HasObjectDependencies(string strObjectDependencies) return false; } + /// + /// Adds a schedule item setting value. + /// + /// The setting key. + /// The value of the setting. public void AddSetting(string key, string value) { this.scheduleItemSettings.Add(key, value); } + /// + /// Gets a specific setting. + /// + /// The key of the setting to get. + /// The value of the setting. public virtual string GetSetting(string key) { if (this.scheduleItemSettings == null) @@ -157,6 +229,10 @@ public virtual string GetSetting(string key) } } + /// + /// Gets all the item settings. + /// + /// An of all the settings. public virtual Hashtable GetSettings() { this.scheduleItemSettings = SchedulingProvider.Instance().GetScheduleItemSettings(this.ScheduleID);