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 ITEM_GUID = System.String; using NICKNAME = System.String; namespace ServerCommon; public class NicknameAttrib : AttribBase { [JsonProperty("owner_guid")] public OWNER_GUID OwnerGuid { get; set; } = string.Empty; [JsonProperty("owner_entity_type")] public OwnerEntityType OwnerEntityType { get; set; } = OwnerEntityType.None; [JsonProperty("nickname")] public string Nickname { get; set; } = string.Empty; public NicknameAttrib() : base(typeof(NicknameAttrib).Name) { } } //============================================================================================= // PK(Partition Key) : "nickname#owner_guid" // SK(Sort Key) : "" // DocType : NicknameDoc // NicknameAttrib : {} // ... //============================================================================================= public class NicknameDoc : DynamoDbDocBase { private static string getPrefixOfPK() { return "nickname#"; } private static string getPrefixOfSK() { return ""; } public NicknameDoc() : base(typeof(NicknameDoc).Name) { appendAttribWrapperAll(); } public NicknameDoc(OwnerEntityType ownerEntityType, OWNER_GUID ownerGuid, NICKNAME nickname) : base(typeof(NicknameDoc).Name) { setCombinationKeyForPK(ownerGuid); appendAttribWrapperAll(); fillUpPrimaryKey(onMakePK(), onMakeSK()); var nickname_attrib = getAttrib(); ArgumentNullException.ThrowIfNull(nickname_attrib, $"nickname_attrib is null !!! - ownerEntityType:{ownerEntityType}, ownerGuid:{ownerGuid}, nickname:{nickname}"); nickname_attrib.OwnerEntityType = ownerEntityType; nickname_attrib.OwnerGuid = ownerGuid; nickname_attrib.Nickname = nickname; } private void appendAttribWrapperAll() { appendAttribWrapper(new AttribWrapper()); } protected override string onGetPrefixOfPK() { return getPrefixOfPK(); } public static async Task<(Result result, NicknameAttrib? attrib)> findNicknameFromGuid(string ownerGuid) { var server_logic = ServerLogicApp.getServerLogicApp(); NullReferenceCheckHelper.throwIfNull(server_logic, () => $"server_logic is null !!!"); var dynamo_db_client = server_logic.getDynamoDbClient(); NullReferenceCheckHelper.throwIfNull(dynamo_db_client, () => $"dynamo_db_client is null !!!"); return await findNicknameFromGuid(dynamo_db_client, ownerGuid); } public static async Task<(Result result, NicknameAttrib? attrib)> findNicknameFromGuid(DynamoDbClient dynamoDbClient, string ownerGuid) { var result = new Result(); var nickname_docs = new List(); (result, var make_primary_key) = await DynamoDBDocBaseHelper.makePrimaryKey(ownerGuid); if (result.isFail()) { return (result, null); } ArgumentNullReferenceCheckHelper.throwIfNull(make_primary_key, () => $"make_primary_key is null !!!"); var query_config = dynamoDbClient.makeQueryConfigForReadByPKSK(make_primary_key.PK, make_primary_key.SK); (result, nickname_docs) = await dynamoDbClient.simpleQueryDocTypesWithQueryOperationConfig(query_config, true); if (result.isFail()) { return (result, null); } var attrib = nickname_docs[0].getAttrib(); if (attrib == null) return (result, null); return (result, attrib); } }