using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.AspNetCore.Server.IIS.Core; using ServerCore; using ServerBase; namespace ServerBase; public abstract partial class RedisRequestBase : IInitializer { private readonly RedisConnector m_redis_connector; private string m_key = string.Empty; private string m_member = string.Empty; public RedisRequestBase(RedisConnector redisConnector) { m_redis_connector = redisConnector; } public virtual Task onInit() { var result = new Result(); return Task.FromResult(result); } protected abstract string onMakeKey(); protected virtual string onMakeMember() { return m_member; } public virtual async Task onPrepareRequest() { var result = new Result(); var err_msg = string.Empty; result = await Task.Run( () => { if(true == m_key.isNullOrWhiteSpace()) { m_key = onMakeKey(); } if (0 >= m_key.Length) { err_msg = $"Failed to prepare Reuqest of Redis !!! - {toBasicString()}"; result.setFail(ServerErrorCode.RedisRequestKeyIsEmpty, err_msg); Log.getLogger().error(result.toBasicString()); return result; } return result; }); return result; } public virtual async Task onDoRequest() { await Task.CompletedTask; var result = new Result(); return result; } public abstract string toBasicString(); }