getHandler method
Get a handler for a command
Implementation
CommandHandler<TState>? getHandler(Command command) {
// First try to find by command type
final handler = _handlers[command.runtimeType];
if (handler != null && handler.canHandle(command)) {
return handler;
}
// Then try aggregate handlers
if (command is TargetedCommand) {
final aggregateHandler = _aggregateHandlers[command.aggregateId];
if (aggregateHandler != null && aggregateHandler.canHandle(command)) {
return aggregateHandler;
}
}
// Finally, search all handlers
for (final h in _handlers.values) {
if (h.canHandle(command)) {
return h;
}
}
return null;
}