using Books.Api.Domain.ApiKeys; using EventFlow.Commands; namespace Books.Api.Commands.ApiKeys; public class CreateApiKeyCommandHandler : CommandHandler { public override Task ExecuteAsync( ApiKeyAggregate aggregate, CreateApiKeyCommand command, CancellationToken cancellationToken) { aggregate.Create(command.Name, command.KeyHash, command.CompanyId, command.CreatedBy); return Task.CompletedTask; } } public class RevokeApiKeyCommandHandler : CommandHandler { public override Task ExecuteAsync( ApiKeyAggregate aggregate, RevokeApiKeyCommand command, CancellationToken cancellationToken) { aggregate.Revoke(command.RevokedBy); return Task.CompletedTask; } }