using ServerCore; using ServerBase; namespace BrokerTest; public class UserTestActorLog : ILogActor { } // EntityBase를 상속 받은 Entity는 EntityAttributeBase와 EntityActionBase를 상속받아 자동으로 만들어진 Attribute들과 Action들을 가지고 있습니다. // 위 내용은 onInit()에서 직접 생성해서 초기화 한다. public class DynamoDbExample { private readonly DynamoDbClient m_dynamo_db_client; private readonly UserTestEntity m_user_entity; public DynamoDbExample(DynamoDbClient dynamoDbClient) { m_dynamo_db_client = dynamoDbClient; m_user_entity = new UserTestEntity(); } public async Task<(Result, UserTestDoc?)> insertUser(string userId, string name) { await m_user_entity.onInit(); var action = m_user_entity.getEntityAction(); NullReferenceCheckHelper.throwIfNull(action, () => $"UserTestInsertAction is null !!! - {m_user_entity.toBasicString()}"); var (result, user_test_doc) = await action.tryInsertUser(userId, name, m_dynamo_db_client); return (result, user_test_doc); } public async Task<(Result, UserTestDoc?)> findUserOne(string userId) { await m_user_entity.onInit(); var action = m_user_entity.getEntityAction(); NullReferenceCheckHelper.throwIfNull(action, () => $"UserTestInsertAction is null !!! - {m_user_entity.toBasicString()}"); return await action.findUserOne(userId, m_dynamo_db_client); } public async Task<(Result, UserTestDoc?)> updateUser(string userId, string newName) { await m_user_entity.onInit(); var action = m_user_entity.getEntityAction(); NullReferenceCheckHelper.throwIfNull(action, () => $"UserTestUpdateOneAction is null !!! - {m_user_entity.toBasicString()}"); return await action.updateOne(userId, newName, m_dynamo_db_client); } public async Task DeleteUserOne(string userId) { await m_user_entity.onInit(); var action = m_user_entity.getEntityAction(); NullReferenceCheckHelper.throwIfNull(action, () => $"UserTestDeleteOneAction is null !!! - {m_user_entity.toBasicString()}"); return await action.deleteOne(userId, m_dynamo_db_client); } }