Esempio n. 1
0
 /// <summary>
 /// 发布消息提示
 /// </summary>
 /// <param name="p_notify">消息提示实例</param>
 public static void Notify(NotifyInfo p_notify)
 {
     if (p_notify != null && !string.IsNullOrEmpty(p_notify.Message))
     {
         RunAsync(() => SysVisual.NotifyList.Add(p_notify));
     }
 }
Esempio n. 2
0
 /// <summary>
 /// 关闭消息提示,通常在连接按钮中执行关闭
 /// </summary>
 /// <param name="p_notify"></param>
 public static void CloseNotify(NotifyInfo p_notify)
 {
     if (p_notify != null)
     {
         RunAsync(() => SysVisual.NotifyList.Remove(p_notify));
     }
 }
Esempio n. 3
0
        /// <summary>
        /// 警告提示
        /// </summary>
        /// <param name="p_content">显示内容</param>
        /// <param name="p_delaySeconds">几秒后自动关闭,默认5秒,0表示不自动关闭</param>
        public static void Warn(string p_content, int p_delaySeconds = 5)
        {
            if (string.IsNullOrEmpty(p_content))
            {
                return;
            }

            NotifyInfo notify = new NotifyInfo();

            notify.Message      = p_content;
            notify.NotifyType   = NotifyType.Warning;
            notify.DelaySeconds = p_delaySeconds;
            RunAsync(() => SysVisual.NotifyList.Add(notify));
        }
Esempio n. 4
0
        public static void OnUnhandledException(Exception p_ex)
        {
            try
            {
                KnownException kex;
                if ((kex = p_ex as KnownException) != null || (kex = p_ex.InnerException as KnownException) != null)
                {
                    // 只警告,不保存日志
                    Kit.Warn(kex.Message);
                }
                else
                {
                    string title;
                    string msg;
                    if (p_ex is ServerException se)
                    {
                        title = se.Title;
                        msg   = se.Message;
                    }
                    else
                    {
                        title = "未处理异常";
                        msg   = $"异常消息:{p_ex.Message}\r\n堆栈信息:{p_ex.StackTrace}";
                    }

                    // 警告、输出监视、保存日志
                    var notify = new NotifyInfo
                    {
                        NotifyType   = NotifyType.Warning,
                        Message      = title,
                        DelaySeconds = 5,
                        Link         = "查看详细",
                    };
                    notify.LinkCallback = (e) =>
                    {
                        ShowTraceBox();
                        notify.Close();
                    };
                    SysVisual.NotifyList.Add(notify);
                    Kit.Trace(TraceOutType.UnhandledException, title, msg);
                    Log.Error(msg);
                }
            }
            catch { }
        }