초기커밋
This commit is contained in:
103
GameServer/Contents/Nickname/Helper/NicknameHelper.cs
Normal file
103
GameServer/Contents/Nickname/Helper/NicknameHelper.cs
Normal file
@@ -0,0 +1,103 @@
|
||||
using Amazon.DynamoDBv2.DocumentModel;
|
||||
using ServerCommon;
|
||||
using ServerCore; using ServerBase;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace GameServer
|
||||
{
|
||||
internal static class NicknameHelper
|
||||
{
|
||||
public static async Task<(Result, List<string>?)> searchNicknameBeginWith(string searchString)
|
||||
{
|
||||
var result = new Result();
|
||||
var nicknames = new List<string>();
|
||||
var err_msg = string.Empty;
|
||||
|
||||
var server_logic = GameServerApp.getServerLogic();
|
||||
var db_client = server_logic.getDynamoDbClient();
|
||||
ArgumentNullException.ThrowIfNull(db_client);
|
||||
|
||||
(result, var make_primary_key) = await DynamoDBDocBaseHelper.makePrimaryKey<UserNicknameRegistryDoc>(DynamoDbClient.PK_GLOBAL, searchString.ToLower());
|
||||
if (result.isFail())
|
||||
{
|
||||
return (result, null);
|
||||
}
|
||||
|
||||
NullReferenceCheckHelper.throwIfNull(make_primary_key, () => $"make_primary_key is null !!! - searchString: {searchString}");
|
||||
|
||||
var query_config = db_client.makeQueryConfigWithPKSKBySKBeginWith( make_primary_key.PK, make_primary_key.SK
|
||||
, new QueryOperationConfig() );
|
||||
ArgumentNullException.ThrowIfNull(query_config);
|
||||
(result, var read_docs) = await db_client.simpleQueryDocTypesWithQueryOperationConfig<UserNicknameRegistryDoc>(query_config);
|
||||
if (result.isFail())
|
||||
{
|
||||
return (result, null);
|
||||
}
|
||||
|
||||
foreach (var doc in read_docs)
|
||||
{
|
||||
var user_nickname_registry_attrib = doc.getAttrib<UserNicknameRegistryAttrib>();
|
||||
NullReferenceCheckHelper.throwIfNull(user_nickname_registry_attrib, () => $"user_nickname_registry_attrib is null !!! - searchString: {searchString}");
|
||||
|
||||
nicknames.Add(user_nickname_registry_attrib.Nickname);
|
||||
}
|
||||
|
||||
return (result, nicknames);
|
||||
}
|
||||
|
||||
public static async Task<(Result, UserNicknameRegistryAttrib?)> findNickname(string toCheckNickname)
|
||||
{
|
||||
var result = new Result();
|
||||
var err_msg = string.Empty;
|
||||
|
||||
var server_logic = ServerLogicApp.getServerLogicApp();
|
||||
var dynamo_db_client = server_logic.getDynamoDbClient();
|
||||
NullReferenceCheckHelper.throwIfNull(dynamo_db_client, () => "dynamo_db_client is null !!!");
|
||||
|
||||
if (toCheckNickname.isNullOrWhiteSpace())
|
||||
{
|
||||
err_msg = $"Nickname is Null or WhiteSpace !!!";
|
||||
result.setFail(ServerErrorCode.UserNicknameEmpty, err_msg);
|
||||
Log.getLogger().error(result.toBasicString());
|
||||
|
||||
return (result, null);
|
||||
}
|
||||
|
||||
(result, var make_primary_key) = await DynamoDBDocBaseHelper.makePrimaryKey<UserNicknameRegistryDoc>(DynamoDbClient.PK_GLOBAL, toCheckNickname.ToLower());
|
||||
if (result.isFail())
|
||||
{
|
||||
return (result, null);
|
||||
}
|
||||
|
||||
NullReferenceCheckHelper.throwIfNull(make_primary_key, () => $"make_primary_key is null !!! - toCheckNickname: {toCheckNickname}");
|
||||
|
||||
var query_config = dynamo_db_client.makeQueryConfigForReadByPKSK(make_primary_key.PK, make_primary_key.SK);
|
||||
ArgumentNullException.ThrowIfNull(query_config);
|
||||
(result, var found_nicknames) = await dynamo_db_client.simpleQueryDocTypesWithQueryOperationConfig<UserNicknameRegistryDoc>(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<UserNicknameRegistryAttrib>();
|
||||
if (nickname_attrib == null)
|
||||
{
|
||||
result.setFail(ServerErrorCode.AttribNotFound);
|
||||
return (result, null);
|
||||
}
|
||||
|
||||
return (result, nickname_attrib);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user