using Amazon.Runtime.Internal; using ServerControlCenter; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using ServerCore; using ServerBase; using TRANSACTION_NAME = System.String; using TRANSACTION_GUID = System.String; namespace ServerBase; public class TransactionRunnerHelper { public static async Task runTransactionRunnerWithLogic( EntityBase owner , TransactionIdType transactionIdType, TRANSACTION_NAME transactionName , Func> fnTransactLogic ) { ArgumentNullReferenceCheckHelper.throwIfNull(owner, () => $"owner is null !!!"); ArgumentNullReferenceCheckHelper.throwIfNull(fnTransactLogic, () => $"fnTransactLogic is null !!! - {owner.toBasicString()}"); using (var runner = new TransactionRunner(owner, transactionIdType, transactionName)) { var result = runner.beginTransaction(); if (result.isFail()) { return result; } return await fnTransactLogic.Invoke(); } } public static async Task runTransactionRunnerWithLogic( EntityBase owner, TRANSACTION_GUID transGuid , TransactionIdType transactionIdType, TRANSACTION_NAME transactionName , Func> fnTransactLogic ) { ArgumentNullReferenceCheckHelper.throwIfNull(owner, () => $"owner is null !!!"); ArgumentNullReferenceCheckHelper.throwIfNull(fnTransactLogic, () => $"fnTransactLogic is null !!! - {owner.toBasicString()}"); using (var runner = new TransactionRunner(owner, transGuid, transactionIdType, transactionName)) { var result = runner.beginTransaction(); if (result.isFail()) { return result; } return await fnTransactLogic.Invoke(); } } }