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

75 lines
3.1 KiB
C#

using Google.Protobuf;
using Google.Protobuf.WellKnownTypes;
using ServerCore;
using ServerBase;
using ServerCommon;
using ServerCommon.BusinessLogDomain;
using MetaAssets;
namespace ServerCommon;
public static class TransactionRunnerHelper
{
public static async Task onApplyCommonResultOfInsertedItem( this TransactionRunner transactionRunner
, ItemBase insertedItemInBag )
{
await Task.CompletedTask;
var owner = transactionRunner.getOwner();
NullReferenceCheckHelper.throwIfNull(owner, () => $"owner is null !!!");
ArgumentNullReferenceCheckHelper.throwIfNull(insertedItemInBag, () => $"insertedItemInBag is null !!! - {owner.toBasicString()}");
var item_attribute_base = insertedItemInBag.getEntityAttribute<ItemAttributeBase>();
NullReferenceCheckHelper.throwIfNull(item_attribute_base, () => $"item_attribute_base is null !!! - {owner.toBasicString()}");
(var result, var entity_common_result) = transactionRunner.getOrNewEntityCommonResult(item_attribute_base);
if (result.isFail())
{
Log.getLogger().fatal(result.toBasicString());
// 유저 로그 아웃 처리 필요 !!!
return;
}
NullReferenceCheckHelper.throwIfNull(entity_common_result, () => $"entity_common_result is null !!! - {owner.toBasicString()}");
var item_result = entity_common_result.Item;
NullReferenceCheckHelper.throwIfNull(item_result, () => $"item_result is null !!! - {owner.toBasicString()}");
var item_guid = item_attribute_base.ItemGuid;
item_result.NewItems.TryAdd(item_guid, item_attribute_base.toItemData4Client());
}
public static async Task onApplyCommonResultOfDeletedItem( this TransactionRunner transactionRunner
, ItemBase deletedItemInBag )
{
await Task.CompletedTask;
var owner = transactionRunner.getOwner();
NullReferenceCheckHelper.throwIfNull(owner, () => $"owner is null !!!");
NullReferenceCheckHelper.throwIfNull(deletedItemInBag, () => $"deletedItemInBag is null !!! - {owner.toBasicString()}");
var item_attribute_base = deletedItemInBag.getEntityAttribute<ItemAttributeBase>();
NullReferenceCheckHelper.throwIfNull(item_attribute_base, () => $"item_attribute_base is null !!! - {owner.toBasicString()}");
(var result, var entity_common_result) = transactionRunner.getOrNewEntityCommonResult(item_attribute_base);
if (result.isFail())
{
Log.getLogger().fatal(result.toBasicString());
// 유저 로그 아웃 처리 필요 !!!
return;
}
NullReferenceCheckHelper.throwIfNull(entity_common_result, () => $"entity_common_result is null !!! - {owner.toBasicString()}");
var item_result = entity_common_result.Item;
NullReferenceCheckHelper.throwIfNull(item_result, () => $"item_result is null !!! - {owner.toBasicString()}");
var item_guid = item_attribute_base.ItemGuid;
item_result.DeletedItems.Add(item_guid);
}
}