using GFramework.Core.Abstractions.Command;
using GFramework.Core.Abstractions.CQRS.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()
{
await OnExecuteAsync(input);
}
///
/// 定义异步执行逻辑的抽象方法,由派生类实现具体业务逻辑
///
/// 命令输入参数
/// 表示异步操作的任务
protected abstract Task OnExecuteAsync(TInput input);
}