Prevent players playing one 1 event from getting drawn out
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
package nl.connectedit.swiss.domain.entity;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import nl.connectedit.swiss.domain.EventType;
|
||||
@@ -91,4 +93,18 @@ public class Tournament extends AbstractEntity {
|
||||
var drawnOutPlayers = this.getDrawnOutPlayers();
|
||||
return drawnOutPlayers.size() == new HashSet<>(drawnOutPlayers).size();
|
||||
}
|
||||
|
||||
public List<Player> getPlayersPlayingOnlyOneEvent() {
|
||||
var playerEvents = new HashMap<Player, List<EventType>>();
|
||||
for (var registration : getRegistrations()) {
|
||||
if (!playerEvents.containsKey(registration.getPlayer())) {
|
||||
playerEvents.put(registration.getPlayer(), new ArrayList<>());
|
||||
}
|
||||
playerEvents.get(registration.getPlayer()).add(registration.getEvent().getType());
|
||||
}
|
||||
return playerEvents.entrySet().stream()
|
||||
.filter(entry -> entry.getValue().size() == 1)
|
||||
.map(Map.Entry::getKey)
|
||||
.toList();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user