mirror of
https://github.com/lidarr/lidarr.git
synced 2025-08-21 05:53:33 -07:00
Cleaned up progress notification.
This commit is contained in:
parent
6e9a6313ff
commit
0a70c836df
5 changed files with 86 additions and 35 deletions
|
@ -7,42 +7,21 @@ namespace NzbDrone.Core.Providers
|
|||
{
|
||||
public class NotificationProvider
|
||||
{
|
||||
private static ProgressNotification _currentNotification;
|
||||
|
||||
private static readonly Object _lock = new object();
|
||||
|
||||
private static readonly Dictionary<Guid, ProgressNotification> _progressNotification =
|
||||
new Dictionary<Guid, ProgressNotification>();
|
||||
|
||||
public virtual List<ProgressNotification> ProgressNotifications
|
||||
public virtual ProgressNotification GetCurrent()
|
||||
{
|
||||
get
|
||||
if (_currentNotification == null || _currentNotification.CompletedTime < DateTime.Now.AddSeconds(-3))
|
||||
{
|
||||
lock (_lock)
|
||||
{
|
||||
var activeNotification =
|
||||
_progressNotification.Values.Where(p => p.Status == ProgressNotificationStatus.InProgress).
|
||||
ToList();
|
||||
|
||||
if (activeNotification.Count == 0)
|
||||
{
|
||||
//Get notifications that were recently done
|
||||
activeNotification =
|
||||
_progressNotification.Values.Where(p => p.CompletedTime >= DateTime.Now.AddSeconds(-3)).
|
||||
OrderByDescending(c => c.CompletedTime).ToList();
|
||||
|
||||
}
|
||||
|
||||
return activeNotification.ToList();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
return _currentNotification;
|
||||
}
|
||||
|
||||
public virtual void Register(ProgressNotification notification)
|
||||
{
|
||||
lock (_lock)
|
||||
{
|
||||
_progressNotification.Add(notification.Id, notification);
|
||||
}
|
||||
_currentNotification = notification;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue