public void HandleShowNotification(ShowNotificationPayload showNotificationPayload) { if (showNotificationPayload.Element == null && !string.IsNullOrWhiteSpace(showNotificationPayload.Text)) { showNotificationPayload.Element = new TextBlock { Text = showNotificationPayload.Text, FontSize = (double) FindResource("SubHeadingFontSize"), FontFamily = (FontFamily) FindResource("AltHeadingFont"), Foreground = (Brush) FindResource("InverseTextColour"), }; } if (showNotificationPayload.Element == null) return; NotificationQueue.Add(showNotificationPayload); if (showNotificationPayload.Element.Parent != null) return; if (showNotificationPayload.TimeSpan != TimeSpan.Zero) { Action actRemoveNotification = async () => { await Task.Delay( (int) showNotificationPayload.TimeSpan.TotalMilliseconds); lock (NotificationQueue) { if (NotificationQueue.Contains(showNotificationPayload)) { NotificationQueue.Remove(showNotificationPayload); } } RemoveNotification(showNotificationPayload.Element); }; actRemoveNotification(); } if (ccContent.Content == null && NotificationQueue.Any()) ShowNotification(NotificationQueue.First().Element, NotificationQueue.First().NotificactionLevel); }
public void CheckForNewUpdates() { if (_isModified) { var reloadingMessage = new ShowNotificationPayload("Reloading Streams", TimeSpan.FromSeconds(10), NotificactionLevel.Information); EventAggregator.GetEvent<ShowNotification>().Publish(reloadingMessage); Task.Run(() => EventAggregator.GetEvent<ReloadFilter>().Publish(new NullEvent())); _isModified = false; } }