package com.flexpoker.processmanagers;
import javax.inject.Inject;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import com.flexpoker.framework.command.CommandSender;
import com.flexpoker.framework.processmanager.ProcessManager;
import com.flexpoker.game.command.commands.AttemptToStartNewHandCommand;
import com.flexpoker.game.command.framework.GameCommandType;
import com.flexpoker.table.command.events.HandCompletedEvent;
@Component
public class AttemptToStartNewHandForExistingTableProcessManager
implements ProcessManager<HandCompletedEvent> {
private final CommandSender<GameCommandType> gameCommandSender;
@Inject
public AttemptToStartNewHandForExistingTableProcessManager(
CommandSender<GameCommandType> gameCommandSender) {
this.gameCommandSender = gameCommandSender;
}
@Async
@Override
public void handle(HandCompletedEvent event) {
AttemptToStartNewHandCommand command = new AttemptToStartNewHandCommand(
event.getGameId(), event.getAggregateId(),
event.getPlayerToChipsAtTableMap());
gameCommandSender.send(command);
}
}