using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; using ServerCore; using ServerBase; using ServerControlCenter; 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; namespace ServerCommon { public class UserNicknameRegistryAttrib : AttribBase { [JsonProperty("nickname")] public string Nickname { get; set; } = string.Empty; [JsonProperty("user_guid")] public USER_GUID UserGuid { get; set; } = string.Empty; [JsonProperty("account_id")] public ACCOUNT_ID AccountId { get; set; } = string.Empty; public UserNicknameRegistryAttrib() : base(typeof(UserNicknameRegistryAttrib).Name) { } } //============================================================================================= // PK(Partition Key) : "user_nickname_registry#" // SK(Sort Key) : "user_nickname" // DocType : UserNicknameRegistryDoc // UserNicknameRegistryAttrib : {} // ... //============================================================================================= public class UserNicknameRegistryDoc : DynamoDbDocBase { private static string getPrefixOfPK() { return "user_nickname_registry#"; } private static string getPrefixOfSK() { return ""; } public UserNicknameRegistryDoc() : base(typeof(UserNicknameRegistryDoc).Name) { appendAttribWrapperAll(); } public UserNicknameRegistryDoc(string userNickname) : base(typeof(UserNicknameRegistryDoc).Name) { setCombinationKeyForPKSK(DynamoDbClient.PK_GLOBAL, userNickname.ToLower()); appendAttribWrapperAll(); fillUpPrimaryKey(onMakePK(), onMakeSK()); var user_nickname_registry_attrib = getAttrib(); NullReferenceCheckHelper.throwIfNull(user_nickname_registry_attrib, () => $"user_nickname_registry_attrib is null !!!"); user_nickname_registry_attrib.Nickname = userNickname; setExceptionHandler(new DynamoDbQueryExceptionNotifier.ExceptionHandler(DynamoDbQueryExceptionNotifier.ConditionalCheckFailed, ServerErrorCode.UserNicknameDuplicated)); } private void appendAttribWrapperAll() { appendAttribWrapper(new AttribWrapper()); } protected override string onGetPrefixOfPK() { return getPrefixOfPK(); } protected override ServerErrorCode onCheckAndSetSK(string sortKey) { getPrimaryKey().fillUpSK(sortKey); setCombinationKeyForSK(sortKey); return ServerErrorCode.Success; } } }