public static void ProcessRDIDb(UserInfo userInfo, ParameterUtil parameter, ProcessFunDelegate fun) { if (SystemInfo.IsAuthorized(userInfo)) { ProcessDb(parameter, fun, DbType.RDIDb); } }
private static void ProcessDb(ParameterUtil parameter, ProcessFunDelegate fun, DbType dbType, bool inTransaction = false) { int milliStart = Begin(parameter.UserInfo, parameter.CurrentMethod); ProcessDbProvider(parameter, fun, dbType, inTransaction); End(milliStart, parameter.CurrentMethod); }
private static void ProcessDbProvider(ParameterUtil sup, ProcessFunDelegate fun, DbType dbType, bool inTransaction) { using (IDbProvider dbProvider = DbFactoryProvider.GetProvider(GetDbType(dbType))) { try { dbProvider.Open(GetDbConnection(dbType)); if (inTransaction) { dbProvider.BeginTransaction(); } fun(dbProvider); AddLog(dbProvider, sup); if (inTransaction) { dbProvider.CommitTransaction(); } } catch (Exception ex) { if (inTransaction) { dbProvider.RollbackTransaction(); } CiExceptionManager.LogException(dbProvider, sup.UserInfo, ex); throw; } finally { dbProvider.Close(); } } }
public static void ProcessRDIWriteDbWithLock(UserInfo userInfo, ParameterUtil parameter, object locker, ProcessFunDelegate fun) { if (SystemInfo.IsAuthorized(userInfo)) { int milliStart = Begin(parameter.UserInfo, parameter.CurrentMethod); lock (locker) { ProcessDbProvider(parameter, fun, DbType.RDIDbWrite, false); } End(milliStart, parameter.CurrentMethod); } }
public static void ProcessWorkFlowDbWithTransaction(UserInfo userInfo, ParameterUtil parameter, ProcessFunDelegate fun) { if (SystemInfo.IsAuthorized(userInfo)) { ProcessDb(parameter, fun, DbType.WorkFlow, true); } }