59 lines
2.1 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|