コード例 #1
0
        /// <summary>
        /// 添加异常数据
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="entity">实体</param>
        /// <param name="statusCode">返回状态码</param>
        /// <param name="statusMessage">返回状态信息</param>
        /// <returns>主键</returns>
        public string Add(UserInfo userInfo, CiExceptionEntity entity, out string statusCode, out string statusMessage)
        {
            string returnValue   = string.Empty;
            string returnCode    = string.Empty;
            string returnMessage = string.Empty;
            var    parameter     = ParameterUtil.CreateWithMessage(userInfo, MethodBase.GetCurrentMethod(), this.serviceName, string.Empty);

            ServiceUtil.ProcessRDIReadDb(userInfo, parameter, dbProvider =>
            {
                var manager   = new CiExceptionManager(dbProvider, userInfo);
                returnValue   = manager.AddEntity(entity);
                returnMessage = manager.GetStateMessage(returnCode);
            });
            statusCode    = returnCode;
            statusMessage = returnMessage;
            return(returnValue);
        }
コード例 #2
0
        /// <summary>
        /// 记录异常情况
        /// </summary>
        /// <param name="dbProvider">数据库连接</param>
        /// <param name="userInfo">用户</param>
        /// <param name="ex">异常</param>
        /// <returns>受影响的行数</returns>
        public static int LogException(IDbProvider dbProvider, UserInfo userInfo, Exception ex)
        {
            // 在控制台需要输出错误信息
            Console.ForegroundColor = ConsoleColor.Red;
            Console.Write(ex.InnerException);
            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine(string.Empty);

            var returnValue = 0;

            // 系统里应该可以配置是否记录异常现象
            if (!SystemInfo.LogException)
            {
                return(returnValue);
            }
            // Windows系统异常中
            if (SystemInfo.EventLog)
            {
                if (!System.Diagnostics.EventLog.SourceExists(SystemInfo.SoftName))
                {
                    System.Diagnostics.EventLog.CreateEventSource(SystemInfo.SoftName, SystemInfo.SoftFullName);
                }
                var eventLog = new System.Diagnostics.EventLog();
                eventLog.Source = SystemInfo.SoftName;
                eventLog.WriteEntry(ex.Message, EventLogEntryType.Error);
            }
            // 判断一下数据库是否打开状态,若数据库都没能打开,还记录啥错误,不是又抛出另一个错误了?
            if (dbProvider != null && dbProvider.GetDbConnection() != null)
            {
                if (dbProvider.GetDbConnection().State == ConnectionState.Open)
                {
                    var exceptionManager = new CiExceptionManager(dbProvider, userInfo);
                    returnValue = exceptionManager.AddEntity(ex);
                }
            }
            return(returnValue);
        }