diff --git a/src/main/java/cz/muni/fi/pa165/icehockeymanager/facades/LeagueManagerFacade.java b/src/main/java/cz/muni/fi/pa165/icehockeymanager/facades/LeagueManagerFacade.java index f175d8d92f1b2af4a81336d5b7da1f973829e8a4..c74c1e53562656fae12cd74cb2bd42089fc42643 100644 --- a/src/main/java/cz/muni/fi/pa165/icehockeymanager/facades/LeagueManagerFacade.java +++ b/src/main/java/cz/muni/fi/pa165/icehockeymanager/facades/LeagueManagerFacade.java @@ -9,7 +9,7 @@ public interface LeagueManagerFacade { void dropGame(long gameId); - void updateGameScore(int homeTeamScore, int awayTeamScore); + void updateGameScore(long gameId, int homeTeamScore, int awayTeamScore); void setGameWinner(long gameId, long teamId); diff --git a/src/main/java/cz/muni/fi/pa165/icehockeymanager/facades/LeagueManagerFacadeImpl.java b/src/main/java/cz/muni/fi/pa165/icehockeymanager/facades/LeagueManagerFacadeImpl.java index 5f145024c06e5dca707e2656316c66a706bc4dcd..8944023e3cd8337504f535ebf0593809938e8e8a 100644 --- a/src/main/java/cz/muni/fi/pa165/icehockeymanager/facades/LeagueManagerFacadeImpl.java +++ b/src/main/java/cz/muni/fi/pa165/icehockeymanager/facades/LeagueManagerFacadeImpl.java @@ -3,7 +3,9 @@ package cz.muni.fi.pa165.icehockeymanager.facades; import cz.muni.fi.pa165.icehockeymanager.dto.GameCreateDTO; import cz.muni.fi.pa165.icehockeymanager.dto.TeamCreateDTO; import cz.muni.fi.pa165.icehockeymanager.exceptions.UnknownGameException; +import cz.muni.fi.pa165.icehockeymanager.exceptions.UnknownTeamException; import cz.muni.fi.pa165.icehockeymanager.model.Game; +import cz.muni.fi.pa165.icehockeymanager.model.Team; import cz.muni.fi.pa165.icehockeymanager.services.BeanMappingService; import cz.muni.fi.pa165.icehockeymanager.services.GameService; import cz.muni.fi.pa165.icehockeymanager.services.PlayerService; @@ -42,13 +44,21 @@ public class LeagueManagerFacadeImpl implements LeagueManagerFacade { } @Override - public void updateGameScore(int homeTeamScore, int awayTeamScore) { - + public void updateGameScore(long gameId, int homeTeamScore, int awayTeamScore) { + Game game = gameService.findGame(gameId).orElseThrow( + () -> new UnknownGameException("Game not found") + ); + gameService.updateGameScore(game, homeTeamScore, awayTeamScore); } @Override public void setGameWinner(long gameId, long teamId) { - + Game game = gameService.findGame(gameId).orElseThrow( + () -> new UnknownGameException("Game not found") + ); + Team team = teamService.getTeam(teamId).orElseThrow( + () -> new UnknownTeamException("Team not found") + ); } @Override diff --git a/src/main/java/cz/muni/fi/pa165/icehockeymanager/services/GameService.java b/src/main/java/cz/muni/fi/pa165/icehockeymanager/services/GameService.java index f0084dddc11f4c74d5dd95fa2302fdcf2c9495eb..778986fc836db0bac7ae652ea14d751d30b954c5 100644 --- a/src/main/java/cz/muni/fi/pa165/icehockeymanager/services/GameService.java +++ b/src/main/java/cz/muni/fi/pa165/icehockeymanager/services/GameService.java @@ -22,4 +22,6 @@ public interface GameService { Optional<Game> findGame(long gameId); void deleteGame(Game game); + + void updateGameScore(Game game, int homeTeamScore, int awayTeamScore); } diff --git a/src/main/java/cz/muni/fi/pa165/icehockeymanager/services/GameServiceImpl.java b/src/main/java/cz/muni/fi/pa165/icehockeymanager/services/GameServiceImpl.java index 76b56da78c31afbb4e5d0f80801032880821486b..680bf0733f5635d48b707f97f1cde06addc6b654 100644 --- a/src/main/java/cz/muni/fi/pa165/icehockeymanager/services/GameServiceImpl.java +++ b/src/main/java/cz/muni/fi/pa165/icehockeymanager/services/GameServiceImpl.java @@ -39,4 +39,18 @@ public class GameServiceImpl implements GameService { public void deleteGame(Game game) { gameDao.delete(game); } + + @Override + public void updateGameScore(Game game, int homeTeamScore, int awayTeamScore) { + game.setHomeTeamScore(homeTeamScore); + game.setAwayTeamScore(awayTeamScore); + if (homeTeamScore > awayTeamScore) { + game.setWinner(game.getHomeTeam()); + } else if (awayTeamScore > homeTeamScore) { + game.setWinner(game.getAwayTeam()); + } else { + game.setWinner(null); + } + gameDao.update(game); + } }