|
@@ -44,12 +44,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
|
|
|
public override void Delete(TimerInfo item)
|
|
|
{
|
|
|
base.Delete(item);
|
|
|
-
|
|
|
- Timer timer;
|
|
|
- if (_timers.TryRemove(item.Id, out timer))
|
|
|
- {
|
|
|
- timer.Dispose();
|
|
|
- }
|
|
|
+ StopTimer(item);
|
|
|
}
|
|
|
|
|
|
public override void Update(TimerInfo item)
|
|
@@ -104,9 +99,15 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- var timespan = startDate - now;
|
|
|
+ var timerLength = startDate - now;
|
|
|
+ StartTimer(item, timerLength);
|
|
|
+ }
|
|
|
|
|
|
- var timer = new Timer(TimerCallback, item.Id, timespan, TimeSpan.Zero);
|
|
|
+ public void StartTimer(TimerInfo item, TimeSpan length)
|
|
|
+ {
|
|
|
+ StopTimer(item);
|
|
|
+
|
|
|
+ var timer = new Timer(TimerCallback, item.Id, length, TimeSpan.Zero);
|
|
|
|
|
|
if (!_timers.TryAdd(item.Id, timer))
|
|
|
{
|
|
@@ -114,6 +115,15 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private void StopTimer(TimerInfo item)
|
|
|
+ {
|
|
|
+ Timer timer;
|
|
|
+ if (_timers.TryRemove(item.Id, out timer))
|
|
|
+ {
|
|
|
+ timer.Dispose();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private void TimerCallback(object state)
|
|
|
{
|
|
|
var timerId = (string)state;
|