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(); 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(); 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); } }