Files
caliverse_server/ServerBase/Helper/TransactionRunnerHelper.cs
2025-05-01 07:20:41 +09:00

59 lines
2.1 KiB
C#

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<Result> runTransactionRunnerWithLogic( EntityBase owner
, TransactionIdType transactionIdType, TRANSACTION_NAME transactionName
, Func<Task<Result>> 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<Result> runTransactionRunnerWithLogic( EntityBase owner, TRANSACTION_GUID transGuid
, TransactionIdType transactionIdType, TRANSACTION_NAME transactionName
, Func<Task<Result>> 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();
}
}
}