gibman:
I see only one thing that your patch doesn't fix and worries me. In TVProgramInfo.CancelProgram(), in line 994 (unpatched version) you have the following:
This is very risky. Gentle will cache instances of DB records and keeps only one in-memory instance of each record per App. So when you change schedule.StartTime you are changing it in that single global instance. Later any call to Schedule.Retrieve() for the same schedule will return this modified instance, with unpredictable results.
Edit: It can get even worse: If Persist() is called at some other place in the code, the modified start time will be persisted to the database.
I see only one thing that your patch doesn't fix and worries me. In TVProgramInfo.CancelProgram(), in line 994 (unpatched version) you have the following:
Code:
[COLOR=Red]schedule.StartTime = program.StartTime;[/COLOR]
TVHome.PromptAndDeleteRecordingSchedule(schedule.IdSchedule, deleteEntireSched, false);
Program.ResetPendingState(program.IdProgram);
Edit: It can get even worse: If Persist() is called at some other place in the code, the modified start time will be persisted to the database.