using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using StackExchange.Redis; using ServerCore; using MODULE_ID = System.UInt32; namespace ServerBase; public static class ServerLogicHelper { public static RabbitMQConnectorBase getRabbitMqConnector(this IServerLogic logic) { var found_module = logic.getModule((MODULE_ID)ModuleId.RabbitMqConnector); var casted_rabbit_mq_connector = found_module as RabbitMQConnectorBase; NullReferenceCheckHelper.throwIfNull(casted_rabbit_mq_connector, () => $"casted_rabbit_mq_connector is null !!! - {logic.toBasicString()}"); return casted_rabbit_mq_connector; } public static RedisConnector getRedisConnector(this IServerLogic logic) { var found_module = logic.getModule((MODULE_ID)ModuleId.RedisConnector); var casted_redis_connector = found_module as RedisConnector; NullReferenceCheckHelper.throwIfNull(casted_redis_connector, () => $"casted_redis_connector is null !!! - {logic.toBasicString()}"); return casted_redis_connector; } public static IDatabase getRedisDb(this IServerLogic logic) { var redis_database = logic.getRedisConnector().getDatabase(); NullReferenceCheckHelper.throwIfNull(redis_database, () => $"redis_database is null !!! - {logic.toBasicString()}"); return redis_database; } public static RedisWithLuaScriptExecutor getRedisWithLuaScriptExecutor(this IServerLogic logic) { var found_module = logic.getModule((MODULE_ID)ModuleId.RedisWithLuaScriptExecutor); var casted_redis_with_lua_script_executor = found_module as RedisWithLuaScriptExecutor; NullReferenceCheckHelper.throwIfNull(casted_redis_with_lua_script_executor, () => $"casted_redis_with_lua_script_executor is null !!! - {logic.toBasicString()}"); return casted_redis_with_lua_script_executor; } public static DynamoDbClient getDynamoDbClient(this IServerLogic logic) { var found_module = logic.getModule((MODULE_ID)ModuleId.DynamoDbConnector); var casted_dynamo_db_client = found_module as DynamoDbClient; NullReferenceCheckHelper.throwIfNull(casted_dynamo_db_client, () => $"casted_dynamo_db_client is null !!! - {logic.toBasicString()}"); return casted_dynamo_db_client; } public static MongoDbConnector getMongoDbConnector(this IServerLogic logic) { var found_module = logic.getModule((MODULE_ID)ModuleId.MongoDbConnector); var casted_mongo_db_connector = found_module as MongoDbConnector; NullReferenceCheckHelper.throwIfNull(casted_mongo_db_connector, () => $"casted_mongo_db_connector is null !!! - {logic.toBasicString()}"); return casted_mongo_db_connector; } public static S3Connector getS3Connector(this IServerLogic logic) { var found_module = logic.getModule((MODULE_ID)ModuleId.S3Connector); var casted_s3_connector = found_module as S3Connector; NullReferenceCheckHelper.throwIfNull(casted_s3_connector, () => $"casted_s3_connector is null !!! - {logic.toBasicString()}"); return casted_s3_connector; } public static ListenSessionBase getListenSessionBase(this ServerLogicBase logicBase) { var found_module = logicBase.getModule((MODULE_ID)ModuleId.ProudNetListener); var listen_session_base = found_module as ListenSessionBase; NullReferenceCheckHelper.throwIfNull(listen_session_base, () => $"listen_session_base is null !!! - {logicBase.toBasicString()}"); return listen_session_base; } public static ListenSessionBase getListenSessionBaseByModuleId(this ServerLogicBase logicBase, ModuleId moduleId) { var found_module = logicBase.getModule((MODULE_ID)moduleId); var listen_session_base = found_module as ListenSessionBase; NullReferenceCheckHelper.throwIfNull(listen_session_base, () => $"listen_session_base is null !!! - {logicBase.toBasicString()}"); return listen_session_base; } }