using GFramework.Core.Abstractions.command; using GFramework.Core.rule; namespace GFramework.Core.command; public abstract class AbstractAsyncCommand(TInput input) : ContextAwareBase, IAsyncCommand where TInput : ICommandInput { async Task IAsyncCommand.ExecuteAsync() { await OnExecuteAsync(input); } protected abstract Task OnExecuteAsync(TInput input); } 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); }