using GFramework.Core.Abstractions.Query; using GFramework.Core.Rule; using GFramework.Cqrs.Abstractions.Cqrs.Query; namespace GFramework.Core.Query; /// /// 异步查询抽象基类,提供异步查询的基本框架和执行机制 /// 继承自ContextAwareBase并实现IAsyncQuery<TResult>接口 /// /// 查询结果的类型 public abstract class AbstractAsyncQuery : ContextAwareBase, IAsyncQuery { /// /// 执行异步查询操作 /// /// 返回查询结果的异步任务 public Task DoAsync() { return OnDoAsync(); } /// /// 抽象方法,用于实现具体的异步查询逻辑 /// /// 返回查询结果的异步任务 protected abstract Task OnDoAsync(); } /// /// 抽象异步查询基类,为需要输入参数的异步查询提供统一执行骨架。 /// /// 查询输入类型,必须实现 接口。 /// 查询结果类型。 /// 查询输入参数。 public abstract class AbstractAsyncQuery(TInput input) : ContextAwareBase, IAsyncQuery where TInput : IQueryInput { /// /// 执行异步查询操作。 /// /// 返回查询结果的异步任务。 public Task DoAsync() { return OnDoAsync(input); } /// /// 抽象方法,用于实现具体的异步查询逻辑。 /// /// 查询输入参数。 /// 返回查询结果的异步任务。 protected abstract Task OnDoAsync(TInput input); }