using GFramework.Core.Abstractions.command;
using GFramework.Core.rule;
namespace GFramework.Core.command;
///
/// 抽象异步命令基类,用于处理有返回值的异步命令操作
///
/// 命令输入类型,必须实现ICommandInput接口
/// 命令执行结果类型
public abstract class AbstractAsyncCommand(TInput input) : ContextAwareBase, IAsyncCommand
where TInput : ICommandInput
{
///
/// 执行异步命令并返回结果的实现方法
///
/// 表示异步操作且包含结果的任务
async Task IAsyncCommand.ExecuteAsync()
{
return await OnExecuteAsync(input);
}
///
/// 定义异步执行逻辑的抽象方法,由派生类实现具体业务逻辑并返回结果
///
/// 命令输入参数
/// 表示异步操作且包含结果的任务
protected abstract Task OnExecuteAsync(TInput input);
}