초기커밋
This commit is contained in:
142
ServerCommon/Doc/OwnerContents/UgcNpcNicknameRegistryDoc.cs
Normal file
142
ServerCommon/Doc/OwnerContents/UgcNpcNicknameRegistryDoc.cs
Normal file
@@ -0,0 +1,142 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
using Newtonsoft.Json;
|
||||
|
||||
|
||||
using ServerCore;
|
||||
using ServerBase;
|
||||
|
||||
|
||||
using SESSION_ID = System.Int32;
|
||||
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 UGC_NPC_META_GUID = System.String;
|
||||
using ITEM_GUID = System.String;
|
||||
|
||||
|
||||
namespace ServerCommon;
|
||||
|
||||
public class UgcNpcNicknameRegistryAttrib : AttribBase
|
||||
{
|
||||
[JsonProperty("nickname")]
|
||||
public string Nickname { get; set; } = string.Empty;
|
||||
|
||||
[JsonProperty("ugc_npc_meta_guid")]
|
||||
public UGC_NPC_META_GUID UgcNpcMetaGuid { get; set; } = string.Empty;
|
||||
|
||||
[JsonProperty("owner_guid")]
|
||||
public OWNER_GUID OwnerGuid { get; set; } = string.Empty;
|
||||
|
||||
[JsonProperty("owner_entity_type")]
|
||||
public OwnerEntityType OwnerEntityType { get; set; } = OwnerEntityType.None;
|
||||
|
||||
public UgcNpcNicknameRegistryAttrib()
|
||||
: base(typeof(UgcNpcNicknameRegistryAttrib).Name)
|
||||
{ }
|
||||
}
|
||||
|
||||
//=============================================================================================
|
||||
// Primary Key
|
||||
// PK(Partition Key) : "ugc_npc_nickname_registry#owner_guid" [owner_guid : user_guid]
|
||||
// SK(Sort Key) : "ugc_npc_nickname"
|
||||
// DocType : UgcNpcNicknameRegistryDoc
|
||||
// UgcNpcNicknameRegistryAttrib : {}
|
||||
// ...
|
||||
//=============================================================================================
|
||||
public class UgcNpcNicknameRegistryDoc : DynamoDbDocBase
|
||||
{
|
||||
private static string getPrefixOfPK() { return "ugc_npc_nickname_registry#"; }
|
||||
private static string getPrefixOfSK() { return ""; }
|
||||
|
||||
public UgcNpcNicknameRegistryDoc()
|
||||
: base(typeof(UgcNpcNicknameRegistryDoc).Name)
|
||||
{
|
||||
appendAttribWrapperAll();
|
||||
}
|
||||
|
||||
public UgcNpcNicknameRegistryDoc(OwnerEntityType ownerEntityType, OWNER_GUID ownerGuid, string ugcNpcNickname, UGC_NPC_META_GUID ugcNpcMetaGuid)
|
||||
: base(typeof(UgcNpcNicknameRegistryDoc).Name)
|
||||
{
|
||||
setCombinationKeyForPK(ownerGuid);
|
||||
setCombinationKeyForSK(ugcNpcNickname);
|
||||
|
||||
appendAttribWrapperAll();
|
||||
|
||||
fillUpPrimaryKey(onMakePK(), onMakeSK());
|
||||
|
||||
var doc_ugc_npc_nickname_registry_attrib = getAttrib<UgcNpcNicknameRegistryAttrib>();
|
||||
NullReferenceCheckHelper.throwIfNull(doc_ugc_npc_nickname_registry_attrib, () => $"doc_ugc_npc_nickname_registry_attrib is null !!! - ugcNpcNickname:{ugcNpcNickname}, ugcNpcMetaGuid:{ugcNpcMetaGuid}, ownerGuid:{ownerGuid}");
|
||||
|
||||
doc_ugc_npc_nickname_registry_attrib.Nickname = ugcNpcNickname;
|
||||
doc_ugc_npc_nickname_registry_attrib.UgcNpcMetaGuid = ugcNpcMetaGuid;
|
||||
doc_ugc_npc_nickname_registry_attrib.OwnerEntityType = ownerEntityType;
|
||||
doc_ugc_npc_nickname_registry_attrib.OwnerGuid = ownerGuid;
|
||||
|
||||
setQueryType(QueryType.Insert);
|
||||
|
||||
setExceptionHandler(new DynamoDbQueryExceptionNotifier.ExceptionHandler(DynamoDbQueryExceptionNotifier.ConditionalCheckFailed, ServerErrorCode.UgcNpcNicknameDuplicated));
|
||||
}
|
||||
|
||||
private void appendAttribWrapperAll()
|
||||
{
|
||||
appendAttribWrapper(new AttribWrapper<UgcNpcNicknameRegistryAttrib>());
|
||||
}
|
||||
|
||||
protected override string onGetPrefixOfPK()
|
||||
{
|
||||
return getPrefixOfPK();
|
||||
}
|
||||
|
||||
protected override ServerErrorCode onCheckAndSetSK(string sortKey)
|
||||
{
|
||||
getPrimaryKey().fillUpSK(sortKey);
|
||||
setCombinationKeyForSK(sortKey);
|
||||
return ServerErrorCode.Success;
|
||||
|
||||
}
|
||||
public static async Task<(Result, UgcNpcNicknameRegistryAttrib?)> findNickname(OWNER_GUID ownerGuid, string toCheckNickname)
|
||||
{
|
||||
var result = new Result();
|
||||
|
||||
var server_logic = ServerLogicApp.getServerLogicApp();
|
||||
var dynamo_db_client = server_logic.getDynamoDbClient();
|
||||
|
||||
(result, var make_primary_key) = await DynamoDBDocBaseHelper.makePrimaryKey<UgcNpcNicknameRegistryDoc>(ownerGuid, toCheckNickname);
|
||||
if(result.isFail())
|
||||
{
|
||||
return (result, null);
|
||||
}
|
||||
NullReferenceCheckHelper.throwIfNull(make_primary_key, () => $"make_primary_key is null !!! - toCheckNickname:{toCheckNickname}, ownerGuid:{ownerGuid}");
|
||||
var query_config = dynamo_db_client.makeQueryConfigForReadByPKSK(make_primary_key.PK, make_primary_key.SK);
|
||||
|
||||
(result, var found_nicknames) = await dynamo_db_client.simpleQueryDocTypesWithQueryOperationConfig<UgcNpcNicknameRegistryDoc>(query_config);
|
||||
if (result.isFail())
|
||||
{
|
||||
return (result, null);
|
||||
}
|
||||
|
||||
if(found_nicknames.Count == 0)
|
||||
{
|
||||
result.setFail(ServerErrorCode.TargetUserNotFound);
|
||||
return (result, null);
|
||||
}
|
||||
|
||||
var nickname_attrib = found_nicknames[0].getAttrib<UgcNpcNicknameRegistryAttrib>();
|
||||
if (nickname_attrib == null)
|
||||
{
|
||||
result.setFail(ServerErrorCode.AttribNotFound);
|
||||
return (result, null);
|
||||
}
|
||||
|
||||
return (result, nickname_attrib);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user