Code optimization

This commit is contained in:
610262374@qq.com 2018-12-07 16:32:42 +08:00
parent d110859eaf
commit 26548f60f9
6 changed files with 49 additions and 51 deletions

View File

@ -59,7 +59,7 @@ namespace SqlSugar
public virtual Action<string, SugarParameter[]> LogEventCompleted { get; set; } public virtual Action<string, SugarParameter[]> LogEventCompleted { get; set; }
public virtual Func<string, SugarParameter[], KeyValuePair<string, SugarParameter[]>> ProcessingEventStartingSQL { get; set; } public virtual Func<string, SugarParameter[], KeyValuePair<string, SugarParameter[]>> ProcessingEventStartingSQL { get; set; }
protected virtual Func<string,string> FormatSql { get; set; } protected virtual Func<string,string> FormatSql { get; set; }
public virtual Action<Exception> ErrorEvent { get; set; } public virtual Action<SqlSugarException> ErrorEvent { get; set; }
public virtual Action<DiffLogModel> DiffLogEvent { get; set; } public virtual Action<DiffLogModel> DiffLogEvent { get; set; }
public virtual List<IDbConnection> SlaveConnections { get; set; } public virtual List<IDbConnection> SlaveConnections { get; set; }
public virtual IDbConnection MasterConnection { get; set; } public virtual IDbConnection MasterConnection { get; set; }
@ -300,7 +300,7 @@ namespace SqlSugar
catch (Exception ex) catch (Exception ex)
{ {
if (ErrorEvent != null) if (ErrorEvent != null)
ErrorEvent(ex); ExecuteErrorEvent(sql, parameters, ex);
throw ex; throw ex;
} }
finally finally
@ -333,7 +333,7 @@ namespace SqlSugar
catch (Exception ex) catch (Exception ex)
{ {
if (ErrorEvent != null) if (ErrorEvent != null)
ErrorEvent(ex); ExecuteErrorEvent(sql, parameters, ex);
throw ex; throw ex;
} }
} }
@ -360,7 +360,7 @@ namespace SqlSugar
catch (Exception ex) catch (Exception ex)
{ {
if (ErrorEvent != null) if (ErrorEvent != null)
ErrorEvent(ex); ExecuteErrorEvent(sql, parameters, ex);
throw ex; throw ex;
} }
finally finally
@ -390,7 +390,7 @@ namespace SqlSugar
catch (Exception ex) catch (Exception ex)
{ {
if (ErrorEvent != null) if (ErrorEvent != null)
ErrorEvent(ex); ExecuteErrorEvent(sql,parameters,ex);
throw ex; throw ex;
} }
finally finally
@ -786,6 +786,11 @@ namespace SqlSugar
var result = Regex.IsMatch(sqlLower, "[ ]*select[ ]") && !Regex.IsMatch(sqlLower, "[ ]*insert[ ]|[ ]*update[ ]|[ ]*delete[ ]"); var result = Regex.IsMatch(sqlLower, "[ ]*select[ ]") && !Regex.IsMatch(sqlLower, "[ ]*insert[ ]|[ ]*update[ ]|[ ]*delete[ ]");
return result; return result;
} }
private void ExecuteErrorEvent(string sql, SugarParameter[] parameters, Exception ex)
{
ErrorEvent(new SqlSugarException(this.Context,ex, sql, parameters));
}
#endregion #endregion
} }
} }

View File

@ -15,7 +15,7 @@ namespace SqlSugar
} }
private SqlSugarClient Context { get; set; } private SqlSugarClient Context { get; set; }
public Action<DiffLogModel> OnDiffLogEvent { set { this.Context.Ado.DiffLogEvent = value; } } public Action<DiffLogModel> OnDiffLogEvent { set { this.Context.Ado.DiffLogEvent = value; } }
public Action<Exception> OnError { set { this.Context.Ado.ErrorEvent = value; } } public Action<SqlSugarException> OnError { set { this.Context.Ado.ErrorEvent = value; } }
public Action<string, SugarParameter[]> OnLogExecuting { set { this.Context.Ado.LogEventStarting = value; } } public Action<string, SugarParameter[]> OnLogExecuting { set { this.Context.Ado.LogEventStarting = value; } }
public Action<string, SugarParameter[]> OnLogExecuted { set { this.Context.Ado.LogEventCompleted = value; } } public Action<string, SugarParameter[]> OnLogExecuted { set { this.Context.Ado.LogEventCompleted = value; } }
public Func<string, SugarParameter[], KeyValuePair<string, SugarParameter[]>> OnExecutingChangeSql { set { this.Context.Ado.ProcessingEventStartingSQL = value; } } public Func<string, SugarParameter[], KeyValuePair<string, SugarParameter[]>> OnExecutingChangeSql { set { this.Context.Ado.ProcessingEventStartingSQL = value; } }

View File

@ -323,7 +323,7 @@ namespace SqlSugar
var isAny = invalidTypes.Contains(bindProperyTypeName); var isAny = invalidTypes.Contains(bindProperyTypeName);
if (isAny) if (isAny)
{ {
throw new UtilExceptions(string.Format("{0} can't convert {1} to {2}", propertyName, validPropertyType, bindProperyTypeName)); throw new SqlSugarException(string.Format("{0} can't convert {1} to {2}", propertyName, validPropertyType, bindProperyTypeName));
} }
} }
#endregion #endregion

View File

@ -26,7 +26,7 @@ namespace SqlSugar
Action<string, SugarParameter []> LogEventStarting { get; set; } Action<string, SugarParameter []> LogEventStarting { get; set; }
Action<string, SugarParameter []> LogEventCompleted { get; set; } Action<string, SugarParameter []> LogEventCompleted { get; set; }
Func<string, SugarParameter[], KeyValuePair<string, SugarParameter[]>> ProcessingEventStartingSQL { get; set; } Func<string, SugarParameter[], KeyValuePair<string, SugarParameter[]>> ProcessingEventStartingSQL { get; set; }
Action<Exception> ErrorEvent { get; set; } Action<SqlSugarException> ErrorEvent { get; set; }
Action<DiffLogModel> DiffLogEvent { get; set; } Action<DiffLogModel> DiffLogEvent { get; set; }
bool IsClearParameters { get; set; } bool IsClearParameters { get; set; }
int CommandTimeOut { get; set; } int CommandTimeOut { get; set; }

View File

@ -9,25 +9,25 @@ namespace SqlSugar
public static void ThrowNotSupportedException(string message) public static void ThrowNotSupportedException(string message)
{ {
message = message.IsNullOrEmpty() ? new NotSupportedException().Message : message; message = message.IsNullOrEmpty() ? new NotSupportedException().Message : message;
throw new UtilExceptions("SqlSugarException.NotSupportedException" + message); throw new SqlSugarException("SqlSugarException.NotSupportedException" + message);
} }
public static void ArgumentNullException(object checkObj, string message) public static void ArgumentNullException(object checkObj, string message)
{ {
if (checkObj == null) if (checkObj == null)
throw new UtilExceptions("SqlSugarException.ArgumentNullException" + message); throw new SqlSugarException("SqlSugarException.ArgumentNullException" + message);
} }
public static void ArgumentNullException(object [] checkObj, string message) public static void ArgumentNullException(object [] checkObj, string message)
{ {
if (checkObj == null|| checkObj.Length==0) if (checkObj == null|| checkObj.Length==0)
throw new UtilExceptions("SqlSugarException.ArgumentNullException" + message); throw new SqlSugarException("SqlSugarException.ArgumentNullException" + message);
} }
public static void Exception(bool isException, string message, params string[] args) public static void Exception(bool isException, string message, params string[] args)
{ {
if (isException) if (isException)
throw new UtilExceptions(string.Format(message, args)); throw new SqlSugarException(string.Format(message, args));
} }
} }
} }

View File

@ -1,58 +1,51 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Reflection;
using System.Text; using System.Text;
using Newtonsoft.Json; using Newtonsoft.Json;
namespace SqlSugar namespace SqlSugar
{ {
public class UtilExceptions : Exception public class SqlSugarException : Exception
{ {
public UtilExceptions(string message) public string Sql { get; set; }
public object Parametres { get; set; }
public new Exception InnerException;
public new string StackTrace;
public new MethodBase TargetSite;
public new string Source;
public SqlSugarException(string message)
: base(message){} : base(message){}
public UtilExceptions(SqlSugarClient context,string message, string sql) public SqlSugarException(SqlSugarClient context,string message, string sql)
: base(GetMessage(context, message, sql)) {} : base(message) {
this.Sql = sql;
public UtilExceptions(SqlSugarClient context, string message, string sql, object pars)
: base(GetMessage(context,message, sql, pars)){}
public UtilExceptions(SqlSugarClient context, string message, object pars)
: base(GetMessage(context,message, pars)){}
private static string GetMessage(SqlSugarClient context, string message, object pars)
{
var parsStr = string.Empty; ;
if (pars != null)
{
parsStr = context.Utilities.SerializeObject(pars);
}
var reval = GetLineMessage("message", message) + GetLineMessage("function", parsStr);
return reval;
} }
private static string GetMessage(SqlSugarClient context, string message, string sql, object pars)
{ public SqlSugarException(SqlSugarClient context, string message, string sql, object pars)
if (pars == null) : base(message) {
{ this.Sql = sql;
return GetMessage(context,message, sql); this.Parametres = pars;
}
else
{
var reval = GetLineMessage("message ", message) + GetLineMessage("ORM Sql", sql) + GetLineMessage("函数参数 ", JsonConvert.SerializeObject(pars));
return reval;
}
} }
private static string GetMessage(string message, string sql)
public SqlSugarException(SqlSugarClient context, Exception ex, string sql, object pars)
: base(ex.Message)
{ {
var reval = GetLineMessage("message ", message) + GetLineMessage("ORM Sql", sql); this.Sql = sql;
return reval; this.Parametres = pars;
this.InnerException = ex.InnerException;
this.StackTrace = ex.StackTrace;
this.TargetSite = ex.TargetSite;
this.Source = ex.Source;
} }
private static string GetLineMessage(string key, string value)
{ public SqlSugarException(SqlSugarClient context, string message, object pars)
return string.Format("{0} '{1}' \r\n", key, value); : base(message) {
this.Parametres = pars;
} }
} }
public class VersionExceptions : UtilExceptions public class VersionExceptions : SqlSugarException
{ {
public VersionExceptions(string message) public VersionExceptions(string message)
: base(message){ } : base(message){ }