fixed some notification issues

This commit is contained in:
kay.one 2011-07-02 10:41:10 -07:00
parent a1caa789fe
commit 555e62fd17
3 changed files with 28 additions and 16 deletions

View File

@ -24,28 +24,40 @@ namespace NzbDrone.Core.Providers
{ {
get get
{ {
lock (_lock)
var activeNotification = _progressNotification.Values.Where(p => p.Status == ProgressNotificationStatus.InProgress).ToList();
if (activeNotification.Count == 0)
{ {
//Get notifications that were recently done var activeNotification =
activeNotification = _progressNotification.Values.Where(p => p.CompletedTime >= DateTime.Now.AddSeconds(-3)).OrderByDescending(c => c.CompletedTime).ToList(); _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 activeNotification.ToList();
} }
} }
public virtual void Register(ProgressNotification notification) public virtual void Register(ProgressNotification notification)
{ {
_progressNotification.Add(notification.Id, notification); lock (_lock)
{
_progressNotification.Add(notification.Id, notification);
}
} }
public virtual void Register(BasicNotification notification) public virtual void Register(BasicNotification notification)
{ {
_basicNotifications.Add(notification.Id, notification); lock (_lock)
{
_basicNotifications.Add(notification.Id, notification);
}
} }
public virtual void Dismiss(Guid notificationId) public virtual void Dismiss(Guid notificationId)

View File

@ -52,13 +52,11 @@ namespace NzbDrone.Web.Controllers
[HttpGet] [HttpGet]
public JsonResult Comet(string message) public JsonResult Comet(string message)
{ {
var requestTimer = Stopwatch.StartNew();
MiniProfiler.Stop(true); MiniProfiler.Stop(true);
var currentMessage = GetCurrentMessage(); var currentMessage = GetCurrentMessage();
while (message == currentMessage && requestTimer.Elapsed.TotalSeconds < 10) while (message == currentMessage)
{ {
Thread.Sleep(250); Thread.Sleep(250);
currentMessage = GetCurrentMessage(); currentMessage = GetCurrentMessage();

View File

@ -42,8 +42,10 @@
function closeMsg() { function closeMsg() {
//hide the message //hide the message
$('#msgBox').hide("slide", { direction: "right" }, speed); if (isShown) {
isShown = false; $('#msgBox').hide("slide", { direction: "right" }, speed);
isShown = false;
}
} }
}); });