Example #1
0
        /// <summary>
        /// Shows an alert notification in front of this window.
        /// </summary>
        public virtual void ShowAlert(AlertNotificationArgs args)
        {
            var icon = _alertContext.GetIcon(args.Level).CreateIcon(IconSize.Large, new ResourceResolver(typeof(DesktopWindow).Assembly));;

            if (args.Level == AlertLevel.Info)
            {
                var dialog = _infoNotificationDialog;
                dialog.OpenLogLinkText      = SR.LinkViewAllAlerts;
                dialog.AlertIcon            = icon;
                dialog.Message              = args.Message;
                dialog.LinkText             = args.LinkText ?? "";
                dialog.LinkHandler          = AlertLinkHandler(args.LinkAction);
                dialog.DismissOnLinkClicked = args.DismissOnLinkClicked;
                dialog.Popup(_errorNotificationDialog.Visible ? 1 : 0);
            }
            else
            {
                // both errors and warnings use the _errorNotificationDialog instance
                var dialog = _errorNotificationDialog;

                // update the un-acknowledged count
                var c = _alertContext.UnacknowledgedErrorWarningCount;
                dialog.OpenLogLinkText = c > 1 ? string.Format(SR.LinkMoreNewAlerts, c - 1) : SR.LinkViewAllAlerts;

                // if the dialog is already visible with an error, do not overwrite it with a warning (lower severity)
                if (args.Level == AlertLevel.Error || !_errorNotificationDialog.Visible)
                {
                    dialog.AlertIcon            = icon;
                    dialog.Message              = args.Message;
                    dialog.LinkText             = args.LinkText ?? "";
                    dialog.LinkHandler          = AlertLinkHandler(args.LinkAction);
                    dialog.DismissOnLinkClicked = args.DismissOnLinkClicked;
                    dialog.Popup(0);
                }
            }
        }