private static void ProcessDb(ServiceInfo parameter, ProcessFun fun, DbType dbType, bool inTransaction = false) { int milliStart = Begin(parameter.UserInfo, parameter.CurrentMethod); ProcessDbHelp(parameter, fun, dbType, inTransaction); End(parameter.UserInfo, milliStart, parameter.CurrentMethod); }
private static void ProcessDbHelp(ServiceInfo serviceInfo, ProcessFun processFun, DbType dbType, bool inTransaction) { // 2016-02-14 吉日嘎拉 增加耗时记录功能 Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); using (IDbHelper dbHelper = DbHelperFactory.GetHelper(GetDbType(dbType), GetDbConnection(dbType))) { try { // dbHelper.Open(GetDbConnection(dbType)); if (inTransaction) { // dbHelper.BeginTransaction(); } processFun(dbHelper); stopwatch.Stop(); serviceInfo.ElapsedTicks = stopwatch.ElapsedTicks; AddLog(serviceInfo); if (inTransaction) { // dbHelper.CommitTransaction(); } } catch (Exception ex) { if (inTransaction) { // dbHelper.RollbackTransaction(); } BaseExceptionManager.LogException(dbHelper, serviceInfo.UserInfo, ex); throw; } finally { // dbHelper.Close(); } } }
public static void ProcessUserCenterWriteDbWithTransaction(BaseUserInfo userInfo, ServiceInfo parameter, ProcessFun fun) { if (BaseSystemInfo.IsAuthorized(userInfo)) { ProcessDb(parameter, fun, DbType.UserCenterWrite, true); } }
public static void ProcessUserCenterWriteDbWithLock(BaseUserInfo userInfo, ServiceInfo parameter, object locker, ProcessFun fun) { if (BaseSystemInfo.IsAuthorized(userInfo)) { int milliStart = Begin(parameter.UserInfo, parameter.CurrentMethod); lock (locker) { ProcessDbHelp(parameter, fun, DbType.UserCenterWrite, false); } End(parameter.UserInfo, milliStart, parameter.CurrentMethod); } }
public static void ProcessUserCenterDb(BaseUserInfo userInfo, ServiceInfo parameter, ProcessFun fun) { if (BaseSystemInfo.IsAuthorized(userInfo)) { ProcessDb(parameter, fun, DbType.UserCenter); } }