home
products
contribute
download
documentation
forum
Home
Forums
New posts
Search forums
What's new
New posts
All posts
Latest activity
Members
Registered members
Current visitors
Donate
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Search forums
Search titles only
By:
Menu
Log in
Register
Navigation
Install the app
Install
More options
Contact us
Close Menu
Forums
MediaPortal 1
WebService and Mobile Access
TV4Home - WCF Webservice for MediaPortal TV Server
Contact us
RSS
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="mpolan" data-source="post: 751567" data-attributes="member: 110519"><p>Hi Mike - I had some fun today figuring out Microsoft's visual workbench, C#, and even got your plugin to build and installed on my system. So I was able to verify that the fix above for canceling a single episode does work.</p><p></p><p>I struggled a bit getting deleteSchedule to work properly, the current version seems to leave around the scheduled programs still marked to be recorded in the db.</p><p></p><p>Here's what I got working - I expect there's an easier/faster way, but this works for now:</p><p></p><p>[CODE]</p><p> public void DeleteSchedule(int scheduleId)</p><p> {</p><p> Schedule schedule = Schedule.Retrieve(scheduleId);</p><p> // mgp first cancel all of the episodes of this program for this schedule</p><p> foreach (Program program in Program.ListAll().Where(program => program.Title == schedule.ProgramName))</p><p> {</p><p> if (schedule.IsRecordingProgram(program, true))</p><p> {</p><p> CanceledSchedule canceledSchedule = new CanceledSchedule(schedule.IdSchedule, program.IdChannel, program.StartTime);</p><p> canceledSchedule.Persist();</p><p> _tvControl.OnNewSchedule();</p><p> }</p><p> }</p><p> // now remove existing CanceledSchedule for this schedule</p><p> foreach (CanceledSchedule canceled in CanceledSchedule.ListAll().Where(canceled => canceled.IdSchedule == schedule.IdSchedule))</p><p> {</p><p> canceled.Remove();</p><p> }</p><p> schedule.Remove();</p><p> _tvControl.OnNewSchedule();</p><p> }</p><p>[/CODE]</p><p></p><p>and my version of CancelSchedule:</p><p></p><p>[CODE] </p><p>public void CancelSchedule(int programId)</p><p> {</p><p> Program program = Program.Retrieve(programId);</p><p></p><p> foreach (Schedule schedule in Schedule.ListAll().Where(schedule => schedule.IsRecordingProgram(program, true)))</p><p> {</p><p> switch (schedule.ScheduleType)</p><p> {</p><p> case (int)ScheduleRecordingType.Once:</p><p> schedule.Delete();</p><p> _tvControl.OnNewSchedule();</p><p> break;</p><p> default:</p><p> // mgp fixed schedule.IdChannel, schedule.StartTime - was canceling only the first scheduled show...</p><p> CanceledSchedule canceledSchedule = new CanceledSchedule(schedule.IdSchedule, program.IdChannel, program.StartTime);</p><p> canceledSchedule.Persist();</p><p> _tvControl.OnNewSchedule();</p><p> break;</p><p> }</p><p> }</p><p> }</p><p>[/CODE]</p><p></p><p>HTH!</p></blockquote><p></p>
[QUOTE="mpolan, post: 751567, member: 110519"] Hi Mike - I had some fun today figuring out Microsoft's visual workbench, C#, and even got your plugin to build and installed on my system. So I was able to verify that the fix above for canceling a single episode does work. I struggled a bit getting deleteSchedule to work properly, the current version seems to leave around the scheduled programs still marked to be recorded in the db. Here's what I got working - I expect there's an easier/faster way, but this works for now: [CODE] public void DeleteSchedule(int scheduleId) { Schedule schedule = Schedule.Retrieve(scheduleId); // mgp first cancel all of the episodes of this program for this schedule foreach (Program program in Program.ListAll().Where(program => program.Title == schedule.ProgramName)) { if (schedule.IsRecordingProgram(program, true)) { CanceledSchedule canceledSchedule = new CanceledSchedule(schedule.IdSchedule, program.IdChannel, program.StartTime); canceledSchedule.Persist(); _tvControl.OnNewSchedule(); } } // now remove existing CanceledSchedule for this schedule foreach (CanceledSchedule canceled in CanceledSchedule.ListAll().Where(canceled => canceled.IdSchedule == schedule.IdSchedule)) { canceled.Remove(); } schedule.Remove(); _tvControl.OnNewSchedule(); } [/CODE] and my version of CancelSchedule: [CODE] public void CancelSchedule(int programId) { Program program = Program.Retrieve(programId); foreach (Schedule schedule in Schedule.ListAll().Where(schedule => schedule.IsRecordingProgram(program, true))) { switch (schedule.ScheduleType) { case (int)ScheduleRecordingType.Once: schedule.Delete(); _tvControl.OnNewSchedule(); break; default: // mgp fixed schedule.IdChannel, schedule.StartTime - was canceling only the first scheduled show... CanceledSchedule canceledSchedule = new CanceledSchedule(schedule.IdSchedule, program.IdChannel, program.StartTime); canceledSchedule.Persist(); _tvControl.OnNewSchedule(); break; } } } [/CODE] HTH! [/QUOTE]
Insert quotes…
Verification
Post reply
Forums
MediaPortal 1
WebService and Mobile Access
TV4Home - WCF Webservice for MediaPortal TV Server
Contact us
RSS
Top
Bottom