using GFramework.Core.Abstractions.Cqrs.Query;
using GFramework.Core.Abstractions.Query;
using GFramework.Core.Rule;
namespace GFramework.Core.Query;
///
/// 抽象异步查询基类,用于处理输入类型为TInput、结果类型为TResult的异步查询操作
///
/// 查询输入类型,必须实现IQueryInput接口
/// 查询结果类型
/// 查询输入参数
public abstract class AbstractAsyncQuery(
TInput input
) : ContextAwareBase, IAsyncQuery
where TInput : IQueryInput
{
///
/// 执行异步查询操作
///
/// 返回查询结果的异步任务
public Task DoAsync()
{
return OnDoAsync(input);
}
///
/// 抽象方法,用于实现具体的异步查询逻辑
///
/// 查询输入参数
/// 返回查询结果的异步任务
protected abstract Task OnDoAsync(TInput input);
}