초기커밋
This commit is contained in:
@@ -0,0 +1,208 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
using ServerCore; using ServerBase;
|
||||
using ServerCommon;
|
||||
using ServerCommon.BusinessLogDomain;
|
||||
using MetaAssets;
|
||||
|
||||
|
||||
using SESSION_ID = System.Int32;
|
||||
using WORLD_META_ID = System.UInt32;
|
||||
using META_ID = System.UInt32;
|
||||
using ENTITY_GUID = System.String;
|
||||
using ACCOUNT_ID = System.String;
|
||||
using OWNER_GUID = System.String;
|
||||
using USER_GUID = System.String;
|
||||
using CHARACTER_GUID = System.String;
|
||||
using ITEM_GUID = System.String;
|
||||
|
||||
|
||||
namespace GameServer
|
||||
{
|
||||
public class TestCharacterCreator : EntityCreatorBase
|
||||
{
|
||||
private ServerCommon.BusinessLogDomain.CharacterCreateLogInfo m_character_create_log = new();
|
||||
private ServerCommon.BusinessLogDomain.CharacterLogInfo m_character_log = new();
|
||||
|
||||
public TestCharacterCreator(Player owner)
|
||||
: base(owner)
|
||||
{
|
||||
}
|
||||
|
||||
public override async Task<Result> onPrepareCreate()
|
||||
{
|
||||
var result = new Result();
|
||||
var err_msg = string.Empty;
|
||||
|
||||
var owner = getOwner();
|
||||
|
||||
var user_create_or_load_action = owner.getEntityAction<UserCreateOrLoadAction>();
|
||||
NullReferenceCheckHelper.throwIfNull(user_create_or_load_action, () => $"user_create_or_load_action is null !!! - {owner.toBasicString()}");
|
||||
var user_attribute = getOwner().getEntityAttribute<UserAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(user_attribute, () => $"user_attribute is null !!! - {owner.toBasicString()}");
|
||||
|
||||
var character = new Character(owner);
|
||||
result = await character.onInit();
|
||||
if(result.isFail())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
var character_attribute = character.getEntityAttribute<CharacterAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(character_attribute, () => $"character_attribute is null !!!- {owner.toBasicString()}");
|
||||
|
||||
var to_add_write_docs = new List<DynamoDbDocBase>();
|
||||
|
||||
// 1. CharacterBaseDoc 정보를 구성 한다.
|
||||
(result, CharacterBaseDoc? new_character_base_doc) = await MetaHelper.fillupCharacterBaseDocByTestUserCreateData(user_attribute, character_attribute);
|
||||
if (result.isFail())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
NullReferenceCheckHelper.throwIfNull(new_character_base_doc, () => $"new_character_base_doc is null !!! - {owner.toBasicString()}");
|
||||
|
||||
to_add_write_docs.Add(new_character_base_doc);
|
||||
|
||||
foreach (var to_write_doc in to_add_write_docs)
|
||||
{
|
||||
result = addWriteDocBase(to_write_doc);
|
||||
if (result.isFail())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
user_create_or_load_action.setReservedCharacterForCreation(character);
|
||||
|
||||
// 2. UserBaseDoc 정보를 갱신 한다. SelectedCharacterGuid 설정 !!!
|
||||
user_attribute.SelectedCharacterGuid = character_attribute.CharacterGuid;
|
||||
user_attribute.modifiedEntityAttribute();
|
||||
|
||||
var user_base_doc = user_attribute.onCreateDocBase() as UserBaseDoc;
|
||||
NullReferenceCheckHelper.throwIfNull(user_base_doc, () => $"user_base_doc is null !!! - {owner.toBasicString()}");
|
||||
|
||||
result = await user_attribute.fillupDoc4QueryWithAttribute(user_base_doc);
|
||||
if (result.isFail())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
result = addWriteDocBase(user_base_doc);
|
||||
if (result.isFail())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
(result, TestUserCreateMetaData? found_test_user_create_data) = await MetaHelper.getTestUserCreateDataByAccountId(user_attribute.AccountId);
|
||||
if (result.isFail())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
NullReferenceCheckHelper.throwIfNull(found_test_user_create_data, () => $"found_test_user_create_data is null !!! - {owner.toBasicString()}");
|
||||
|
||||
setCompetedPrepareCreate(true);
|
||||
|
||||
// CharacterCreate 로그 설정
|
||||
m_character_create_log.CharacterGuid = character_attribute.CharacterGuid;
|
||||
m_character_create_log.CharacterPK = new_character_base_doc.getPK();
|
||||
m_character_create_log.CharacterSK = new_character_base_doc.getSK();
|
||||
m_character_create_log.CharacterCreateMetaType = found_test_user_create_data.getTypeName();
|
||||
m_character_create_log.CharacterCreateMetaId = (META_ID)found_test_user_create_data.MetaId;
|
||||
|
||||
// 3. 유저 닉네임이 생성된 경우는 즉시 캐릭터 정보를 생성 한다.
|
||||
if (user_create_or_load_action.isCreatedUserNickname())
|
||||
{
|
||||
await onTriggerEffect();
|
||||
}
|
||||
|
||||
Log.getLogger().info($"Step Prepare Create Test Character Success : onPrepareCreate() - {owner.toBasicString()}");
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override async Task<Result> onTriggerEffect()
|
||||
{
|
||||
var owner = getOwner();
|
||||
|
||||
var user_create_or_load_action = owner.getEntityAction<UserCreateOrLoadAction>();
|
||||
NullReferenceCheckHelper.throwIfNull(user_create_or_load_action, () => $"user_create_or_load_action is null !!! - {owner.toBasicString()}");
|
||||
|
||||
var server_logic = GameServerApp.getServerLogic();
|
||||
|
||||
var result = new Result();
|
||||
var err_msg = string.Empty;
|
||||
|
||||
if (false == isCompletedPrepareCreate())
|
||||
{
|
||||
err_msg = $"Not completed isCompletedPrepareCreate() !!! - {toBasicString()}, {owner.toBasicString()}";
|
||||
result.setFail(ServerErrorCode.TestCharacterPrepareCreateNotCompleted , err_msg);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
if (true == isCompleted())
|
||||
{
|
||||
err_msg = $"Test Character completed creation !!! - {toBasicString()}, {getOwner().toBasicString()}";
|
||||
Log.getLogger().info(err_msg);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
var batch = new QueryBatchEx<QueryRunnerWithDocument>( owner, LogActionType.CharacterCreate
|
||||
, server_logic.getDynamoDbClient()
|
||||
, true );
|
||||
{
|
||||
batch.addQuery(new DBQEntityWrite( getToWriteDocBases() ));
|
||||
batch.addQuery(new QueryFinal(), tryUpdateTestCharacterCreate);
|
||||
}
|
||||
|
||||
return await QueryHelper.sendQueryAndBusinessLog(batch);
|
||||
}
|
||||
|
||||
public async Task<QueryBatchBase.QueryResultType> tryUpdateTestCharacterCreate(QueryExecutorBase contextBase)
|
||||
{
|
||||
await Task.CompletedTask;
|
||||
|
||||
var owner = getOwner();
|
||||
|
||||
setCompleted();
|
||||
|
||||
var user_create_or_load_action = owner.getEntityAction<UserCreateOrLoadAction>();
|
||||
NullReferenceCheckHelper.throwIfNull(user_create_or_load_action, () => $"user_create_or_load_action is null !!! - {owner.toBasicString()}");
|
||||
var reserved_create_character = user_create_or_load_action.getReservedCharacterForCreation();
|
||||
NullReferenceCheckHelper.throwIfNull(reserved_create_character, () => $"reserved_create_character is null !!! - {owner.toBasicString()}");
|
||||
|
||||
var query_batch = contextBase.getQueryBatch();
|
||||
NullReferenceCheckHelper.throwIfNull(query_batch, () => $"query_batch is null !!! - {owner.toBasicString()}");
|
||||
var log_action = query_batch.getLogAction();
|
||||
NullReferenceCheckHelper.throwIfNull(log_action, () => $"log_action is null !!! - {owner.toBasicString()}");
|
||||
|
||||
var character_attribute = reserved_create_character.getEntityAttribute<CharacterAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(character_attribute, () => $"character_attribute is null !!! - {owner.toBasicString()}");
|
||||
|
||||
(var result, var character_log_info) = await character_attribute.toCharacterLogInfo();
|
||||
if(result.isFail())
|
||||
{
|
||||
var err_msg = $"Failed to toCharacterLogInfo() !!! : {result.toBasicString()} - {toBasicString()}, {owner.toBasicString()}";
|
||||
Log.getLogger().error(err_msg);
|
||||
}
|
||||
else
|
||||
{
|
||||
NullReferenceCheckHelper.throwIfNull(character_log_info, () => $"character_log_info is null !!! - {owner.toBasicString()}");
|
||||
|
||||
m_character_log.setInfo(character_log_info);
|
||||
|
||||
// 비즈니스 로그 추가
|
||||
query_batch.appendBusinessLog(new CharacterCreateBusinessLog(log_action, DateTimeHelper.Current, m_character_create_log));
|
||||
query_batch.appendBusinessLog(new CharacterBusinessLog(log_action, m_character_log));
|
||||
}
|
||||
|
||||
return QueryBatchBase.QueryResultType.Success;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,838 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
using ServerCore; using ServerBase;
|
||||
using ServerCommon;
|
||||
using ServerCommon.BusinessLogDomain;
|
||||
|
||||
|
||||
using MetaAssets;
|
||||
|
||||
|
||||
using SESSION_ID = System.Int32;
|
||||
using WORLD_META_ID = System.UInt32;
|
||||
using META_ID = System.UInt32;
|
||||
using ENTITY_GUID = System.String;
|
||||
using ACCOUNT_ID = System.String;
|
||||
using OWNER_GUID = System.String;
|
||||
using USER_GUID = System.String;
|
||||
using CHARACTER_GUID = System.String;
|
||||
using ITEM_GUID = System.String;
|
||||
|
||||
|
||||
namespace GameServer
|
||||
{
|
||||
public class TestUserCreator : EntityCreatorBase
|
||||
{
|
||||
private bool m_is_pass_register_user_nickname_registeration = false;
|
||||
|
||||
private ServerCommon.BusinessLogDomain.UserCreateLogInfo m_user_create_log = new();
|
||||
private ServerCommon.BusinessLogDomain.UserLogInfo m_user_log = new();
|
||||
|
||||
public TestUserCreator(Player owner)
|
||||
: base(owner)
|
||||
{
|
||||
}
|
||||
|
||||
public override async Task<Result> onPrepareCreate()
|
||||
{
|
||||
var result = new Result();
|
||||
var err_msg = string.Empty;
|
||||
|
||||
var owner = getOwner();
|
||||
|
||||
var server_logic = GameServerApp.getServerLogic();
|
||||
|
||||
var user_create_or_load_action = owner.getEntityAction<UserCreateOrLoadAction>();
|
||||
NullReferenceCheckHelper.throwIfNull(user_create_or_load_action, () => $"user_create_or_load_action is null !!! - {owner.toBasicString()}");
|
||||
var account_attribute = owner.getEntityAttribute<AccountAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(account_attribute, () => $"account_attribute is null !!! - {owner.toBasicString()}");
|
||||
|
||||
var account_id = account_attribute.AccountId;
|
||||
|
||||
var to_add_write_docs = new List<DynamoDbDocBase>();
|
||||
|
||||
//=====================================================================================
|
||||
// 1. AccountBaseDoc 갱신 한다.
|
||||
//=====================================================================================
|
||||
account_attribute.modifiedEntityAttribute();
|
||||
|
||||
(result, var account_base_doc) = await account_attribute.toDocBase();
|
||||
if (result.isFail())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
var modify_account_base_doc = account_base_doc as AccountBaseDoc;
|
||||
NullReferenceCheckHelper.throwIfNull(modify_account_base_doc, () => $"modify_account_base_doc is null !!! - {owner.toBasicString()}");
|
||||
to_add_write_docs.Add(modify_account_base_doc);
|
||||
|
||||
|
||||
//=====================================================================================
|
||||
// 2. UserBaseDoc 생성 한다.
|
||||
//=====================================================================================
|
||||
(result, UserBaseDoc? new_user_base_doc) = await MetaHelper.fillupUserBaseDocBy(owner, modify_account_base_doc);
|
||||
if (result.isFail())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
NullReferenceCheckHelper.throwIfNull(new_user_base_doc, () => $"new_user_base_doc is null !!! - {owner.toBasicString()}");
|
||||
to_add_write_docs.Add(new_user_base_doc);
|
||||
|
||||
|
||||
//=====================================================================================
|
||||
// 3. AccountBaseDoc & UserBaseDoc 갱신 한다.
|
||||
//=====================================================================================
|
||||
var user_attribute = owner.getEntityAttribute<UserAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(user_attribute, () => $"user_attribute is null !!! - {owner.toBasicString()}");
|
||||
|
||||
if (false == user_attribute.applyUserGuidToRefAttributes(modify_account_base_doc, account_attribute, new_user_base_doc))
|
||||
{
|
||||
err_msg = $"Failed to applyUserGuidToRefAttributes() !!! : newUserGuid:{user_attribute.UserGuid} - {owner.toBasicString()}";
|
||||
result.setFail(ServerErrorCode.UserGuidApplyToRefAttributeAllFailed, err_msg);
|
||||
Log.getLogger().error(result.toBasicString());
|
||||
return result;
|
||||
}
|
||||
|
||||
(result, TestUserCreateMetaData? found_test_user_create_data) = await MetaHelper.getTestUserCreateDataByAccountId(account_id);
|
||||
if (result.isFail())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
ArgumentNullException.ThrowIfNull(found_test_user_create_data, $"found_test_user_create_data is null !!! - {owner.toBasicString()}");
|
||||
|
||||
|
||||
//=====================================================================================
|
||||
// 4. LevelDoc 생성 한다.
|
||||
//=====================================================================================
|
||||
var level_attribute = owner.getEntityAttribute<LevelAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(level_attribute, () => $"level_attribute is null !!! - {owner.toBasicString()}");
|
||||
|
||||
level_attribute.newEntityAttribute();
|
||||
(result, var level_doc) = await level_attribute.toDocBase();
|
||||
if (result.isFail())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
NullReferenceCheckHelper.throwIfNull(level_doc, () => $"level_doc is null !!! - {owner.toBasicString()}");
|
||||
to_add_write_docs.Add(level_doc);
|
||||
|
||||
|
||||
//=====================================================================================
|
||||
// 5. MoneyDoc 생성 한다.
|
||||
//=====================================================================================
|
||||
var money_attribute = owner.getEntityAttribute<MoneyAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(money_attribute, () => $"money_attribute is null !!! - {owner.toBasicString()}");
|
||||
|
||||
money_attribute.newEntityAttribute();
|
||||
(result, var money_doc) = await money_attribute.toDocBase();
|
||||
if (result.isFail())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
NullReferenceCheckHelper.throwIfNull(money_doc, () => $"money_doc is null !!! - {owner.toBasicString()}");
|
||||
to_add_write_docs.Add(money_doc);
|
||||
|
||||
|
||||
//=====================================================================================
|
||||
// 6. LocationDoc 생성 한다.
|
||||
//=====================================================================================
|
||||
var location_attribute = owner.getEntityAttribute<LocationAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(location_attribute, () => $"location_attribute is null !!! - {owner.toBasicString()}");
|
||||
|
||||
location_attribute.newEntityAttribute();
|
||||
(result, var location_doc) = await location_attribute.toDocBase();
|
||||
if (result.isFail())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
NullReferenceCheckHelper.throwIfNull(location_doc, () => $"location_doc is null !!! - {owner.toBasicString()}");
|
||||
to_add_write_docs.Add(location_doc);
|
||||
|
||||
//=====================================================================================
|
||||
// 7. 1~6 까지 등록된 Write Doc 목록을 모두 등록 한다.
|
||||
//=====================================================================================
|
||||
result = addWriteDocBases(to_add_write_docs);
|
||||
if (result.isFail())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//=====================================================================================
|
||||
// 8. ItemDoc 목록을 생성 한다.
|
||||
//=====================================================================================
|
||||
(result, var created_item_docs) = await createItemDocsByTestUserCreateData(owner, found_test_user_create_data);
|
||||
if(result.isFail())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
NullReferenceCheckHelper.throwIfNull(created_item_docs, () => $"created_item_docs is null !!! - {owner.toBasicString()}");
|
||||
|
||||
pushWriteDocBases(created_item_docs);
|
||||
|
||||
|
||||
//=====================================================================================
|
||||
// 8. SocialActionDoc 목록을 생성 한다.
|
||||
//=====================================================================================
|
||||
var social_action_agent_action = owner.getEntityAction<SocialActionLoadAction>();
|
||||
NullReferenceCheckHelper.throwIfNull(social_action_agent_action, () => $"social_action_agent_action is null !!! - {owner.toBasicString()}");
|
||||
|
||||
foreach (var social_action_meta_data in MetaData.Instance._SocialActionTable.Values)
|
||||
{
|
||||
if (!social_action_meta_data.IsDefault)
|
||||
continue;
|
||||
|
||||
result = await social_action_agent_action.tryAddSocialActionFromMetaId(social_action_meta_data.SocialActionId);
|
||||
if (result.isFail())
|
||||
{
|
||||
Log.getLogger().error($"Failed to tryAddSocialActionFromMetaId() !!! : socialActionMetaId:{social_action_meta_data.SocialActionId} - {owner.toBasicString()}");
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!social_action_agent_action.tryGetSocialAction(social_action_meta_data.SocialActionId, out var social_action))
|
||||
{
|
||||
Log.getLogger().error($"Failed to tryGetSocialAction() !!! : socialActionMetaId:{social_action_meta_data.SocialActionId} - {owner.toBasicString()}");
|
||||
continue;
|
||||
}
|
||||
|
||||
if (social_action_meta_data.SlotNum != 0)
|
||||
{
|
||||
var social_action_action = social_action.getEntityAction<SocialActionAction>();
|
||||
NullReferenceCheckHelper.throwIfNull(social_action_action, () => $"social_action_action is null !!! - {owner.toBasicString()}");
|
||||
|
||||
result = social_action_action.tryEquipSocialAction((UInt16)social_action_meta_data.SlotNum);
|
||||
if (result.isFail())
|
||||
{
|
||||
Log.getLogger().error($"Failed to tryEquipSocialAction() !!! : {result.toBasicString()} - {owner.toBasicString()}");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
var social_action_attribute = social_action.getEntityAttribute<UserSocialActionAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(social_action_attribute, () => $"social_action_attribute is null !!! - {owner.toBasicString()}");
|
||||
|
||||
(result, var social_action_doc) = await social_action_attribute.toDocBase();
|
||||
if (result.isFail())
|
||||
{
|
||||
Log.getLogger().error($"Failed to toDocBase() by DefaultUserCreator !!! : {social_action.toBasicString()} - {owner.toBasicString()}");
|
||||
continue;
|
||||
}
|
||||
NullReferenceCheckHelper.throwIfNull(social_action_doc, () => $"social_action_doc is null !!! - {owner.toBasicString()}");
|
||||
pushWriteDocBase(social_action_doc);
|
||||
}
|
||||
|
||||
|
||||
//=====================================================================================
|
||||
// 9. MyHome & ItemDoc 목록을 생성 한다.
|
||||
//=====================================================================================
|
||||
var myhome_agent_action = owner.getEntityAction<MyhomeAgentAction>();
|
||||
NullReferenceCheckHelper.throwIfNull(myhome_agent_action, () => $"myhome_agent_action is null !!! - {owner.toBasicString()}");
|
||||
|
||||
(result, var myhome) = await myhome_agent_action.tryMakeDefaultMyhome();
|
||||
if (result.isFail())
|
||||
{
|
||||
err_msg = $"Failed to tryAddMyhomeFromUgc() !!! : {result.toBasicString()} - {owner.toBasicString()}";
|
||||
Log.getLogger().error(err_msg);
|
||||
|
||||
return result;
|
||||
}
|
||||
NullReferenceCheckHelper.throwIfNull(myhome, () => $"myhome is null !!! - {owner.toBasicString()}");
|
||||
|
||||
var myhome_attribute = myhome.getEntityAttribute<MyhomeAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(myhome_attribute, () => $"myhome_attribute is null !!! - {owner.toBasicString()}");
|
||||
|
||||
(result, var myhome_doc) = await myhome_attribute.toDocBase();
|
||||
if (result.isFail())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
NullReferenceCheckHelper.throwIfNull(myhome_doc, () => $"myhome_doc is null !!! - {owner.toBasicString()}");
|
||||
pushWriteDocBase(myhome_doc);
|
||||
|
||||
var myhome_inventory_action = myhome.getEntityAction<MyhomeInventoryAction>();
|
||||
NullReferenceCheckHelper.throwIfNull(myhome_doc, () => $"myhome_doc is null !!! - {owner.toBasicString()}");
|
||||
var bag_inven = myhome_inventory_action.getBagInven();
|
||||
NullReferenceCheckHelper.throwIfNull(bag_inven, () => $"bag_inven is null !!! - {owner.toBasicString()}");
|
||||
var has_items = bag_inven.getHasItemBases();
|
||||
NullReferenceCheckHelper.throwIfNull(has_items, () => $"has_items is null !!! - {owner.toBasicString()}");
|
||||
|
||||
foreach (var item in has_items)
|
||||
{
|
||||
var new_item = item;
|
||||
|
||||
var item_attribute = new_item.getEntityAttribute<ItemAttributeBase>();
|
||||
NullReferenceCheckHelper.throwIfNull(item_attribute, () => $"item_attribute is null !!! - {owner.toBasicString()}");
|
||||
|
||||
(result, var item_doc) = await item_attribute.toDocBase();
|
||||
if (result.isFail())
|
||||
{
|
||||
Log.getLogger().error($"Failed to toDocBase() by DefaultUserCreator !!! : {new_item.toBasicString()} - {owner.toBasicString()}");
|
||||
continue;
|
||||
}
|
||||
NullReferenceCheckHelper.throwIfNull(item_doc, () => $"item_docs is null !!! - {owner.toBasicString()}");
|
||||
pushWriteDocBase(item_doc);
|
||||
}
|
||||
|
||||
|
||||
//=====================================================================================
|
||||
// 10. CartDoc 생성 한다.
|
||||
//=====================================================================================
|
||||
var cart_action = owner.getEntityAction<CartAction>();
|
||||
NullReferenceCheckHelper.throwIfNull(cart_action, () => $"cart_action is null !!! - {owner.toBasicString()}");
|
||||
|
||||
var cart = cart_action.getCart();
|
||||
NullReferenceCheckHelper.throwIfNull(cart, () => $"cart is null !!! - {owner.toBasicString()}");
|
||||
var cart_attribute = cart.getEntityAttribute<CartAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(cart_attribute, () => $"cart_attribute is null !!! - {owner.toBasicString()}");
|
||||
|
||||
cart_attribute.newEntityAttribute();
|
||||
(result, var cart_doc) = await cart_attribute.toDocBase();
|
||||
if (result.isFail())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
NullReferenceCheckHelper.throwIfNull(cart_doc, () => $"cart_doc is null !!! - {owner.toBasicString()}");
|
||||
pushWriteDocBase(cart_doc);
|
||||
|
||||
|
||||
//=====================================================================================
|
||||
// 11. FriendFolder 생성 한다.
|
||||
//=====================================================================================
|
||||
//이건 CustomDefineUI 로 사용변경 예정, 추후 삭제 예정
|
||||
var friend_folder_attribute = owner.getEntityAttribute<FriendFolderAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(friend_folder_attribute, () => $"friend_folder_attribute is null !!! - {owner.toBasicString()}");
|
||||
friend_folder_attribute.fillNewData();
|
||||
friend_folder_attribute.newEntityAttribute();
|
||||
(result, var friend_folder_doc) = await friend_folder_attribute.toDocBase();
|
||||
if (result.isFail())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
NullReferenceCheckHelper.throwIfNull(friend_folder_doc, () => $"friend_folder_doc is null !!! - {owner.toBasicString()}");
|
||||
pushWriteDocBase(friend_folder_doc);
|
||||
|
||||
|
||||
//=====================================================================================
|
||||
// 12. QuestMailDoc & QuestDoc 목록을 생성 한다.
|
||||
//=====================================================================================
|
||||
var quest_mail_action = owner.getEntityAction<QuestMailAction>();
|
||||
NullReferenceCheckHelper.throwIfNull(quest_mail_action, () => $"quest_mail_action is null !!! - {owner.toBasicString()}");
|
||||
|
||||
(var mail_quest_ids, var force_accept_quest_ids) = await quest_mail_action.makeQuestMailDocByType(EAssignRequireType.PlayerInitial);
|
||||
var quest_mails = quest_mail_action.makeNewSystemQuestMail(mail_quest_ids);
|
||||
foreach (var quest_mail in quest_mails)
|
||||
{
|
||||
var quest_mail_attribute = quest_mail.getEntityAttribute<QuestMailAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(quest_mail_attribute, () => $"quest_mail_attribute is null !!! - {owner.toBasicString()}");
|
||||
quest_mail_attribute.newEntityAttribute();
|
||||
|
||||
(result, var quest_mail_doc) = await quest_mail_attribute.toDocBase();
|
||||
if (quest_mail_doc is null) continue;
|
||||
|
||||
NullReferenceCheckHelper.throwIfNull(quest_mail_doc, () => $"quest_mail_doc is null !!! - {owner.toBasicString()}");
|
||||
pushWriteDocBase(quest_mail_doc);
|
||||
}
|
||||
|
||||
var quest_action = owner.getEntityAction<QuestAction>();
|
||||
NullReferenceCheckHelper.throwIfNull(quest_action, () => $"quest_action is null !!! - {owner.toBasicString()}");
|
||||
|
||||
var new_quests = await quest_action.makeNewQuestByCreateUser(force_accept_quest_ids);
|
||||
foreach (var new_quest in new_quests)
|
||||
{
|
||||
var quest_attribute = new_quest.getEntityAttribute<QuestAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(quest_attribute, () => $"quest_attribute is null !!! - {owner.toBasicString()}");
|
||||
quest_attribute.newEntityAttribute();
|
||||
|
||||
(result, var quest_doc) = await quest_attribute.toDocBase();
|
||||
if (quest_doc is null) continue;
|
||||
|
||||
NullReferenceCheckHelper.throwIfNull(quest_doc, () => $"quest_doc is null !!! - {owner.toBasicString()}");
|
||||
pushWriteDocBase(quest_doc);
|
||||
}
|
||||
|
||||
|
||||
//=====================================================================================
|
||||
// 13. RepeatQuestDoc 목록을 생성 한다.
|
||||
//=====================================================================================
|
||||
var repeat_quest_attribute = owner.getEntityAttribute<RepeatQuestAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(repeat_quest_attribute, () => $"repeat_quest_attribute is null !!! - {owner.toBasicString()}");
|
||||
repeat_quest_attribute.newEntityAttribute();
|
||||
|
||||
(result, var repeat_quest_doc) = await repeat_quest_attribute.toDocBase();
|
||||
if (result.isFail())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
NullReferenceCheckHelper.throwIfNull(repeat_quest_doc, () => $"repeat_quest_doc is null !!! - {owner.toBasicString()}");
|
||||
pushWriteDocBase(repeat_quest_doc);
|
||||
|
||||
|
||||
//=====================================================================================
|
||||
// 14. CraftHelpDoc 목록을 생성 한다.
|
||||
//=====================================================================================
|
||||
var craft_help_attribute = owner.getEntityAttribute<CraftHelpAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(craft_help_attribute, () => $"craft_help_attribute is null !!! - {owner.toBasicString()}");
|
||||
craft_help_attribute.newEntityAttribute();
|
||||
(result, var craft_help_doc) = await craft_help_attribute.toDocBase();
|
||||
if (result.isFail())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
NullReferenceCheckHelper.throwIfNull(craft_help_doc, () => $"repeat_quest_doc is null !!! - {owner.toBasicString()}");
|
||||
pushWriteDocBase(craft_help_doc);
|
||||
|
||||
|
||||
//=====================================================================================
|
||||
// 15. UserContentsSettingDoc 목록을 생성 한다.
|
||||
//=====================================================================================
|
||||
var user_contents_setting_attribute = owner.getEntityAttribute<UserContentsSettingAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(user_contents_setting_attribute, () => $"user_contents_setting_attribute is null !!! - {owner.toBasicString()}");
|
||||
|
||||
user_contents_setting_attribute.MyhomeSlotOpenCount = MetaHelper.GameConfigMeta.MyHomeDefaultSaveSlot;
|
||||
user_contents_setting_attribute.newEntityAttribute();
|
||||
|
||||
(result, var user_contents_setting_doc) = await user_contents_setting_attribute.toDocBase();
|
||||
if (result.isFail())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
NullReferenceCheckHelper.throwIfNull(user_contents_setting_doc, () => $"user_contents_setting_doc is null !!! - {owner.toBasicString()}");
|
||||
pushWriteDocBase(user_contents_setting_doc);
|
||||
|
||||
|
||||
//=====================================================================================
|
||||
// 16. CharacterProfileDoc 목록을 생성 한다.
|
||||
//=====================================================================================
|
||||
var character_profile_attribute = owner.getEntityAttribute<CharacterProfileAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(character_profile_attribute, () => $"character_profile_attribute is null !!! - {owner.toBasicString()}");
|
||||
character_profile_attribute.newEntityAttribute();
|
||||
|
||||
(result, var character_profile_doc) = await character_profile_attribute.toDocBase();
|
||||
if (result.isFail())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
NullReferenceCheckHelper.throwIfNull(character_profile_doc, () => $"character_profile_doc is null !!! - {owner.toBasicString()}");
|
||||
pushWriteDocBase(character_profile_doc);
|
||||
|
||||
|
||||
//=====================================================================================
|
||||
// 17. PackageLastOrderRecodeDoc 목록을 생성 한다.
|
||||
//=====================================================================================
|
||||
var package_last_order_recode_attribute = owner.getEntityAttribute<PackageLastOrderRecodeAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(package_last_order_recode_attribute, () => $"package_last_order_recode_attribute is null !!! - {owner.toBasicString()}");
|
||||
package_last_order_recode_attribute.newEntityAttribute();
|
||||
|
||||
(result, var package_last_order_recode_doc) = await package_last_order_recode_attribute.toDocBase();
|
||||
if (result.isFail())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
NullReferenceCheckHelper.throwIfNull(package_last_order_recode_doc, () => $"package_last_order_recode_doc is null !!! - {owner.toBasicString()}");
|
||||
pushWriteDocBase(package_last_order_recode_doc);
|
||||
|
||||
|
||||
//=====================================================================================
|
||||
// 18. UgqDailyRewardCountDoc 목록을 생성 한다.
|
||||
//=====================================================================================
|
||||
var ugq_daily_reward_count_attribute = owner.getEntityAttribute<UgqDailyRewardCountAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(ugq_daily_reward_count_attribute, () => $"repeat_quest_attribute is null !!! - {owner.toBasicString()}");
|
||||
ugq_daily_reward_count_attribute.modifiedEntityAttribute(true);
|
||||
|
||||
(result, var ugq_daily_reward_count_doc) = await ugq_daily_reward_count_attribute.toDocBase();
|
||||
if (result.isFail())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
NullReferenceCheckHelper.throwIfNull(ugq_daily_reward_count_doc, () => $"ugq_daily_reward_count_doc is null !!! - {owner.toBasicString()}");
|
||||
pushWriteDocBase(ugq_daily_reward_count_doc);
|
||||
|
||||
|
||||
// // 21. DailyQuestCheck
|
||||
|
||||
//=====================================================================================
|
||||
// 20. SeasonPassDoc 목록을 생성 한다.
|
||||
//=====================================================================================
|
||||
var seasonPassManager = server_logic.getSeasonPassManager();
|
||||
|
||||
var season_pass_attribute = getOwner().getEntityAttribute<SeasonPassAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(season_pass_attribute, () => $"season_pass_attribute is null !!! - {owner.toBasicString()}");
|
||||
season_pass_attribute.newEntityAttribute();
|
||||
|
||||
season_pass_attribute.SeasonPassMetaId = seasonPassManager.currentSeasonPass;
|
||||
season_pass_attribute.IsChargedPass = false;
|
||||
season_pass_attribute.Exp = 0;
|
||||
season_pass_attribute.Grade = 1;
|
||||
season_pass_attribute.takenRewards.Clear();
|
||||
|
||||
(result, var season_pass_doc) = await season_pass_attribute.toDocBase();
|
||||
if (result.isFail())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
NullReferenceCheckHelper.throwIfNull(season_pass_doc, () => $"season_pass_doc is null !!! - {owner.toBasicString()}");
|
||||
pushWriteDocBase(season_pass_doc);
|
||||
|
||||
|
||||
setCompetedPrepareCreate(true);
|
||||
|
||||
|
||||
//=====================================================================================
|
||||
// 21. UserCreate 로그 설정 한다.
|
||||
//=====================================================================================
|
||||
m_user_create_log.UserGuid = user_attribute.UserGuid;
|
||||
m_user_create_log.UserPK = new_user_base_doc.getPK();
|
||||
m_user_create_log.UserSK = new_user_base_doc.getSK();
|
||||
m_user_create_log.AccountCreationType = account_attribute.AccountCreationType;
|
||||
m_user_create_log.UserCreationMetaType = found_test_user_create_data.getTypeName();
|
||||
m_user_create_log.UserCreateMetaId = (META_ID)found_test_user_create_data.MetaId;
|
||||
|
||||
Log.getLogger().info($"Step Prepare Create Test User Success : onPrepareCreate() - {owner.toBasicString()}");
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public static async Task<(Result, List<DynamoDbDocBase>?)> createItemDocsByTestUserCreateData(Player owner, MetaAssets.TestUserCreateMetaData testUserCreateData)
|
||||
{
|
||||
ArgumentNullReferenceCheckHelper.throwIfNull(owner, () => $"owner is null !!!");
|
||||
|
||||
var result = new Result();
|
||||
var err_msg = string.Empty;
|
||||
|
||||
var make_item_docs = new List<DynamoDbDocBase>();
|
||||
|
||||
//=====================================================================================
|
||||
// 1. 아이템을 구성 한다.
|
||||
//=====================================================================================
|
||||
var inventory_action = owner.getEntityAction<InventoryActionBase>();
|
||||
NullReferenceCheckHelper.throwIfNull(inventory_action, () => $"inventory_action is null !!! - {owner.toBasicString()}");
|
||||
|
||||
var to_add_item_meta_ids = new List<META_ID>();
|
||||
|
||||
try
|
||||
{
|
||||
foreach (var item_meta_id in testUserCreateData.InventoryItems)
|
||||
{
|
||||
(result, var reserved_items) = await inventory_action.tryTakalbleToBag((uint)item_meta_id);
|
||||
if (result.isFail())
|
||||
{
|
||||
Log.getLogger().error($"Failed to tryTakalbleToBag() by TestUserCreateData.InventoryItems !!! : {result.toBasicString()} - {owner.toBasicString()}");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var item_meta_id in testUserCreateData.WearingItems)
|
||||
{
|
||||
(result, var reserved_items) = await inventory_action.tryTakableToBagWithEquip((uint)item_meta_id);
|
||||
if (result.isFail())
|
||||
{
|
||||
Log.getLogger().error($"Failed to tryTakableToBagWithEquip() by TestUserCreateData.WearingItems !!! : {result.toBasicString()} - {owner.toBasicString()}");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var (item_meta_id, index) in testUserCreateData.ToolPresets.Select((item_meta_id, index) => (item_meta_id, index)))
|
||||
{
|
||||
if (0 == item_meta_id)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
(result, var reserved_items) = await inventory_action.tryTakableToBagWithEquip((uint)item_meta_id, 1, (Int16)index);
|
||||
if (result.isFail())
|
||||
{
|
||||
Log.getLogger().error($"Failed to tryTakableToBagWithEquip() by TestUserCreateData.ToolPresets !!! : {result.toBasicString()} - {owner.toBasicString()}");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var (item_meta_id, index) in testUserCreateData.TattooItems.Select((item_meta_id, index) => (item_meta_id, index)))
|
||||
{
|
||||
if (0 == item_meta_id)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
(result, var reserved_items) = await inventory_action.tryTakableToBagWithEquip((uint)item_meta_id, 1, (Int16)index);
|
||||
if (result.isFail())
|
||||
{
|
||||
Log.getLogger().error($"Failed to tryTakableToBagWithEquip() by TestUserCreateData.TattooItems !!! : {result.toBasicString()} - {owner.toBasicString()}");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
err_msg = $"Exception !!!, Failed to add Item by TestUserCreateData !!! : exception:{e} - {owner.toBasicString()}";
|
||||
result.setFail(ServerErrorCode.TryCatchException, err_msg);
|
||||
Log.getLogger().error(result.toBasicString());
|
||||
|
||||
return (result, null);
|
||||
}
|
||||
|
||||
var to_create_items = new Dictionary<ITEM_GUID, Item>();
|
||||
|
||||
//=====================================================================================
|
||||
// 2. 지급된 아이템을 모두 참조 한다.
|
||||
//=====================================================================================
|
||||
var bag_inven = inventory_action.getBagInven();
|
||||
NullReferenceCheckHelper.throwIfNull(bag_inven, () => $"bag_inven is null !!! - {owner.toBasicString()}");
|
||||
|
||||
var has_items = bag_inven.getHasItemBases();
|
||||
foreach (var item in has_items)
|
||||
{
|
||||
var new_item = item as Item;
|
||||
NullReferenceCheckHelper.throwIfNull(new_item, () => $"new_item is null !!! - {owner.toBasicString()}");
|
||||
|
||||
var item_attribute = new_item.getEntityAttribute<ItemAttributeBase>();
|
||||
NullReferenceCheckHelper.throwIfNull(item_attribute, () => $"item_attribute is null !!! - {owner.toBasicString()}");
|
||||
|
||||
(result, var item_doc) = await item_attribute.toDocBase();
|
||||
if(result.isFail())
|
||||
{
|
||||
Log.getLogger().error($"Failed to toDocBase() by TestUserCreator !!! : {result.toBasicString()} - {owner.toBasicString()}");
|
||||
continue;
|
||||
}
|
||||
NullReferenceCheckHelper.throwIfNull(item_doc, () => $"item_doc is null !!! - {owner.toBasicString()}");
|
||||
|
||||
var item_attrib = item_doc.getAttrib<ItemAttrib>();
|
||||
NullReferenceCheckHelper.throwIfNull(item_attrib, () => $"item_attrib is null !!! - {owner.toBasicString()}");
|
||||
|
||||
if(false == to_create_items.TryAdd(item_attrib.ItemGuid, new_item))
|
||||
{
|
||||
Log.getLogger().error($"Failed to TryAdd() Item !!!, duplicated ItemGuid : {new_item.toBasicString()} - {owner.toBasicString()}");
|
||||
continue;
|
||||
}
|
||||
|
||||
make_item_docs.Add(item_doc);
|
||||
}
|
||||
|
||||
return (result, make_item_docs);
|
||||
}
|
||||
|
||||
public override async Task<Result> onTriggerEffect()
|
||||
{
|
||||
var result = new Result();
|
||||
var err_msg = string.Empty;
|
||||
|
||||
var owner = getOwner();
|
||||
|
||||
var server_logic = GameServerApp.getServerLogic();
|
||||
|
||||
var user_create_or_load_action = owner.getEntityAction<UserCreateOrLoadAction>();
|
||||
NullReferenceCheckHelper.throwIfNull(user_create_or_load_action, () => $"user_create_or_load_action is null !!! - {owner.toBasicString()}");
|
||||
|
||||
if(false == isCompletedPrepareCreate())
|
||||
{
|
||||
err_msg = $"Not completed isCompletedPrepareCreate() !!! - {toBasicString()}, {getOwner().toBasicString()}";
|
||||
result.setFail(ServerErrorCode.TestUserPrepareCreateNotCompleted , err_msg);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
if (true == isCompleted())
|
||||
{
|
||||
err_msg = $"Test User completed creation !!! - {toBasicString()}, {getOwner().toBasicString()}";
|
||||
result.setFail(ServerErrorCode.UserCreateCompleted, err_msg);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
// 유저 닉네임 생성을 위한 정보를 등록 한다.
|
||||
result = await createAndPushUserNicknameDocQuery(owner);
|
||||
if(result.isFail())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
// 기본 마이홈 Ugc Info를 S3에 업로드 한다
|
||||
result = await tryUploadDefaultMyhomeUgcInfoToS3(owner);
|
||||
if (result.isFail())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
var batch = new QueryBatchEx<QueryRunnerWithDocument>( owner, LogActionType.UserCreate
|
||||
, server_logic.getDynamoDbClient()
|
||||
, true );
|
||||
{
|
||||
batch.addQuery(new DBQEntityWrite( getToWriteDocBases() ));
|
||||
batch.addQuery(new QueryFinal(), completedTestUserCreate);
|
||||
}
|
||||
|
||||
result = await QueryHelper.sendQueryAndBusinessLog(batch);
|
||||
if (result.isFail())
|
||||
{
|
||||
// S3에 업로드한 Ugc Info를 제거한다.
|
||||
await tryDeleteDefaultMyhomeUgcInfoFromS3(owner);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private async Task<Result> createAndPushUserNicknameDocQuery(Player owner)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(owner, $"owner is null !!!");
|
||||
|
||||
var result = new Result();
|
||||
|
||||
var user_attribute = owner.getEntityAttribute<UserAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(user_attribute, () => $"user_attribute is null !!! - {owner.toBasicString()}");
|
||||
|
||||
var nickname_attribute = owner.getEntityAttribute<NicknameAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(nickname_attribute, () => $"nickname_attribute is null !!! - {owner.toBasicString()}");
|
||||
|
||||
var user_guid = user_attribute.UserGuid;
|
||||
var account_id = user_attribute.AccountId;
|
||||
var nickname = nickname_attribute.Nickname;
|
||||
nickname_attribute.newEntityAttribute();
|
||||
|
||||
if (false == m_is_pass_register_user_nickname_registeration)
|
||||
{
|
||||
deleteWriteDoc<UserNicknameRegistryDoc>();
|
||||
|
||||
var user_nickname_registry_doc = new UserNicknameRegistryDoc(nickname);
|
||||
result = await user_nickname_registry_doc.newDoc4Query();
|
||||
if (result.isFail())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
var doc_user_nickname_attrib = user_nickname_registry_doc.getAttrib<UserNicknameRegistryAttrib>();
|
||||
NullReferenceCheckHelper.throwIfNull(doc_user_nickname_attrib, () => $"doc_user_nickname_attrib is null !!! - {owner.toBasicString()}");
|
||||
|
||||
doc_user_nickname_attrib.Nickname = nickname;
|
||||
doc_user_nickname_attrib.UserGuid = user_guid;
|
||||
doc_user_nickname_attrib.AccountId = account_id;
|
||||
|
||||
pushWriteDocBase(user_nickname_registry_doc);
|
||||
}
|
||||
|
||||
deleteWriteDoc<NicknameDoc>();
|
||||
|
||||
(result, var nickname_base_doc) = await nickname_attribute.toDocBase();
|
||||
if (result.isFail())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
NullReferenceCheckHelper.throwIfNull(nickname_base_doc, () => $"nickname_base_doc is null !!! - {owner.toBasicString()}");
|
||||
|
||||
pushWriteDocBase(nickname_base_doc);
|
||||
|
||||
m_user_create_log.UserNickname = nickname;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
async Task<Result> tryUploadDefaultMyhomeUgcInfoToS3(Player player)
|
||||
{
|
||||
var result = new Result();
|
||||
var err_msg = string.Empty;
|
||||
|
||||
var myhome_agent_action = player.getEntityAction<MyhomeAgentAction>();
|
||||
NullReferenceCheckHelper.throwIfNull(myhome_agent_action, () => $"myhome_agent_action is null !!! - {player.toBasicString()}");
|
||||
|
||||
if (!myhome_agent_action.tryGetSelectedMyhome(out var myhome))
|
||||
{
|
||||
err_msg = $"Failed to tryGetSelectedMyHome() !!! : {this.getTypeName()}";
|
||||
result.setFail(ServerErrorCode.MyHomeNotFound, err_msg);
|
||||
Log.getLogger().error(result.toBasicString());
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
var myhome_action = myhome.getEntityAction<MyhomeAction>();
|
||||
NullReferenceCheckHelper.throwIfNull(myhome_action, () => $"myhome_action is null !!! - {player.toBasicString()}");
|
||||
|
||||
result = await myhome_action.tryUploadMyhomeUgcInfoToS3();
|
||||
if (result.isFail())
|
||||
{
|
||||
err_msg = $"Failed to tryUploadMyhomeUgcInfoToS3() !!! : {result.toBasicString()}";
|
||||
Log.getLogger().error(err_msg);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
async Task<Result> tryDeleteDefaultMyhomeUgcInfoFromS3(Player player)
|
||||
{
|
||||
var result = new Result();
|
||||
var err_msg = string.Empty;
|
||||
|
||||
var myhome_agent_action = player.getEntityAction<MyhomeAgentAction>();
|
||||
NullReferenceCheckHelper.throwIfNull(myhome_agent_action, () => $"myhome_agent_action is null !!! - {player.toBasicString()}");
|
||||
|
||||
if (!myhome_agent_action.tryGetSelectedMyhome(out var myhome))
|
||||
{
|
||||
err_msg = $"Failed to tryGetSelectedMyHome() !!! : {this.getTypeName()}";
|
||||
result.setFail(ServerErrorCode.MyHomeNotFound, err_msg);
|
||||
Log.getLogger().error(result.toBasicString());
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
var myhome_action = myhome.getEntityAction<MyhomeAction>();
|
||||
NullReferenceCheckHelper.throwIfNull(myhome_action, () => $"myhome_action is null !!! - {player.toBasicString()}");
|
||||
|
||||
result = await myhome_action.tryDeleteMyhomeUgcInfoFolderFileFromS3();
|
||||
if (result.isFail())
|
||||
{
|
||||
err_msg = $"Failed to tryDeleteMyhomeUgcInfoFolderFileFromS3() !!! : {result.toBasicString()}";
|
||||
Log.getLogger().error(err_msg);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public async Task<QueryBatchBase.QueryResultType> completedTestUserCreate(QueryExecutorBase queryExecutorBase)
|
||||
{
|
||||
await Task.CompletedTask;
|
||||
|
||||
var err_msg = string.Empty;
|
||||
|
||||
var owner = getOwner();
|
||||
|
||||
setCompleted();
|
||||
|
||||
// 생성시 DBEntityWrite 처리 후 DB 에서 다시 로딩하게 되어있다.
|
||||
// 나중에 최적화 목적으로 DBEntityWrite 처리 후 각각의 EntityAttribute 에 적재하는 방안도 고려 하자 !!! - kangms
|
||||
|
||||
var query_batch = queryExecutorBase.getQueryBatch();
|
||||
NullReferenceCheckHelper.throwIfNull(query_batch, () => $"query_batch is null !!! - {owner.toBasicString()}");
|
||||
var log_action = query_batch.getLogAction();
|
||||
NullReferenceCheckHelper.throwIfNull(log_action, () => $"log_action is null !!! - {owner.toBasicString()}");
|
||||
|
||||
m_user_log.setInfo(owner.toUserLogInfo());
|
||||
|
||||
// 비즈니스 로그 추가
|
||||
query_batch.appendBusinessLog(new UserCreateBusinessLog(log_action, DateTimeHelper.Current, m_user_create_log));
|
||||
query_batch.appendBusinessLog(new UserBusinessLog(log_action, m_user_log));
|
||||
|
||||
var created_item_docs = getToWriteDocBases<ItemDoc>();
|
||||
foreach (var item_doc in created_item_docs)
|
||||
{
|
||||
(var result, var item_log_info) = await item_doc.toItemLogInfo4Create();
|
||||
if (result.isFail())
|
||||
{
|
||||
err_msg = $"Failed to toItemLogInfo4Create() !!! : {result.toBasicString()}";
|
||||
Log.getLogger().error(err_msg);
|
||||
|
||||
continue;
|
||||
}
|
||||
NullReferenceCheckHelper.throwIfNull(item_log_info, () => $"item_log_info is null !!! - {owner.toBasicString()}");
|
||||
query_batch.appendBusinessLog(new ItemBusinessLog(item_log_info));
|
||||
}
|
||||
|
||||
return QueryBatchBase.QueryResultType.Success;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user