using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace WCS_Client { public class TryCachHelper { public static void TryExecute(Action action) { try { action(); } catch (Exception ex) { LogHelper.Sys_Log.WriteLog(ex.ToString()); } finally { } } public static string TryExecute2(Action action) { string result = string.Empty; try { action(); } catch (Exception ex) { result = ex.Message; LogHelper.Sys_Log.WriteLog(ex.ToString()); } finally { } return result; } /// /// 无事务无返回值的通用代码 /// /// /// public static string TryExecute(Action action) { string msg = string.Empty; SqlSugarClient db = null; try { db = SugarClient.GetInstance(); action(db); } catch (Exception ex) { msg = ex.Message; LogHelper.Sys_Log.WriteLog(ex.ToString()); } finally { if (db != null) ((IDisposable)db).Dispose(); } return msg; } /// /// 无事务的有返回值通用代码 /// /// /// public static string TryFuncExecute(Func func) { string msg = string.Empty; SqlSugarClient db = null; try { db = SugarClient.GetInstance(); msg = func(db); } catch (Exception ex) { msg = ex.Message; LogHelper.Sys_Log.WriteLog(ex.ToString()); } finally { if (db != null) ((IDisposable)db).Dispose(); } return msg; } public static void TryExecute(Action action, string methodName) { SqlSugarClient db = null; try { db = SugarClient.GetInstance(); action(db); } catch (Exception ex) { LogHelper.Sys_Log.WriteLog(ex.ToString()); } finally { if (db != null) ((IDisposable)db).Dispose(); } } /// /// 有事务的无返回值通用代码 /// /// /// public static string TryTranExecute(Action action) { string msg = string.Empty; SqlSugarClient db = null; try { db = SugarClient.GetInstance(); db.Ado.BeginTran(); action(db); db.Ado.CommitTran(); } catch (Exception ex) { msg = ex.Message; if (db != null) db.Ado.RollbackTran(); LogHelper.Sys_Log.WriteLog(ex.ToString()); } finally { if (db != null) ((IDisposable)db).Dispose(); } return msg; } /// /// 有事务的无返回值通用代码 /// /// /// public static string TryTranExecute(Action action, int loc) { string msg = string.Empty; if (Interlocked.Exchange(ref loc, 1) == 0) { SqlSugarClient db = null; try { db = SugarClient.GetInstance(); db.Ado.BeginTran(); action(db); db.Ado.CommitTran(); } catch (Exception ex) { msg = ex.Message; if (db != null) db.Ado.RollbackTran(); LogHelper.Sys_Log.WriteLog(ex.ToString()); } finally { if (db != null) ((IDisposable)db).Dispose(); Interlocked.Exchange(ref loc, 0); } } return msg; } /// /// 有事务的有返回值通用代码 /// /// /// public static object TryTranFuncExecute(Func func) { object obj = null; SqlSugarClient db = null; try { db = SugarClient.GetInstance(); db.Ado.BeginTran(); obj = func(db); db.Ado.CommitTran(); } catch (Exception ex) { obj = null; if (db != null) db.Ado.RollbackTran(); LogHelper.Sys_Log.WriteLog(ex.ToString()); } finally { if (db != null) ((IDisposable)db).Dispose(); } return obj; } public static void TryTranExecute(Action action, string methodName) { SqlSugarClient db = null; try { db = SugarClient.GetInstance(); db.Ado.BeginTran(); action(db); db.Ado.CommitTran(); } catch (Exception ex) { if (db != null) db.Ado.RollbackTran(); LogHelper.Sys_Log.WriteLog(ex.ToString()); } finally { if (db != null) ((IDisposable)db).Dispose(); } } } }