Ejemplo n.º 1
0
        private static void ValidateAreSameTeamsInGames(
            GameResultDto game,
            Game newGame,
            TournamentScheduleDto tournamentScheduleInfo)
        {
            string errorMessage = null;

            if (GameValidation.IsFreeDayGame(newGame))
            {
                if (tournamentScheduleInfo.Scheme != TournamentSchemeEnum.PlayOff)
                {
                    errorMessage = Resources.SameFreeDayGameInRound;
                }
                else
                {
                    errorMessage = string.Format(
                        Resources.SameTeamInRound,
                        game.HomeTeamId);
                }
            }
            else
            {
                errorMessage = String.Format(
                    Resources.SameGameInRound,
                    game.HomeTeamName,
                    game.AwayTeamName,
                    game.Round.ToString());
            }
            throw new ArgumentException(errorMessage);
        }
Ejemplo n.º 2
0
 private void SwitchTeamsOrder(Game game)
 {
     if (!GameValidation.IsFreeDayGame(game))
     {
         int?tempHomeId = game.HomeTeamId;
         game.HomeTeamId = game.AwayTeamId;
         game.AwayTeamId = tempHomeId;
     }
 }
Ejemplo n.º 3
0
        private void ValidateGamesInTournamentSchemeTwo(Game newGame, List <GameResultDto> games)
        {
            var tournamentGames = games
                                  .Where(gr => gr.Round != newGame.Round)
                                  .ToList();

            var duplicates = tournamentGames
                             .Where(x => GameValidation.AreSameOrderTeamsInGames(x, newGame))
                             .ToList();

            if (GameValidation.IsFreeDayGame(newGame))
            {
                if (duplicates.Count == GameValidation.MAX_DUPLICATE_GAMES_IN_SCHEMA_TWO)
                {
                    throw new ArgumentException(
                              string.Format(
                                  Resources.SameGameInTournamentSchemeTwo,
                                  duplicates.First().HomeTeamName,
                                  duplicates.First().AwayTeamName));
                }
            }
            else
            {
                if (duplicates.Count > 0)
                {
                    SwitchTeamsOrder(newGame);

                    int switchedDuplicatesCount = tournamentGames
                                                  .Count(x => GameValidation.AreSameOrderTeamsInGames(x, newGame));

                    if (switchedDuplicatesCount > 0)
                    {
                        throw new ArgumentException(
                                  string.Format(
                                      Resources.SameGameInTournamentSchemeTwo,
                                      duplicates.First().HomeTeamName,
                                      duplicates.First().AwayTeamName));
                    }
                }
            }
        }
Ejemplo n.º 4
0
        private static void ValidateAreSameTeamsInGames(
            GameResultDto game,
            Game newGame,
            TournamentScheduleDto tournamentScheduleInfo)
        {
            string errorMessage = null;
            var    tmpres       = (tournamentScheduleInfo.Scheme !=
                                   TournamentSchemeEnum.PlayOff
                ? Resources.SameFreeDayGameInRound
                : string.Format(
                                       Resources.SameTeamInRound,
                                       game.HomeTeamId));

            errorMessage = GameValidation.IsFreeDayGame(newGame)
                ? tmpres
                : string.Format(
                Resources.SameGameInRound,
                game.HomeTeamName,
                game.AwayTeamName,
                game.Round.ToString());
            throw new ArgumentException(errorMessage);
        }
Ejemplo n.º 5
0
        private void ValidateGamesInTournamentSchemeOne(Game newGame, List <GameResultDto> games)
        {
            List <GameResultDto> tournamentGames = games
                                                   .Where(gr => gr.Round != newGame.Round)
                                                   .ToList();

            var duplicates = tournamentGames
                             .Where(x => GameValidation.AreSameTeamsInGames(x, newGame))
                             .ToList();

            if (duplicates.Count > 0)
            {
                var awayTeamName = GameValidation.IsFreeDayGame(newGame)
                    ? GameResultConstants.FREE_DAY_TEAM_NAME
                    : duplicates.First().AwayTeamName;

                throw new ArgumentException(
                          string.Format(
                              Resources.SameGameInTournamentSchemeOne,
                              duplicates.First().HomeTeamName,
                              awayTeamName));
            }
        }
Ejemplo n.º 6
0
        private static void ValidateIsTheSameTeamInTwoGames(
            GameResultDto game,
            Game newGame,
            TournamentScheduleDto tournamentScheduleInfo)
        {
            if (tournamentScheduleInfo.Scheme == TournamentSchemeEnum.PlayOff)
            {
                return;
            }

            if (GameValidation.IsFreeDayGame(newGame))
            {
                if (game.HomeTeamId != newGame.HomeTeamId &&
                    game.AwayTeamId != newGame.HomeTeamId)
                {
                    throw new ArgumentException(Resources.SameFreeDayGameInRound);
                }
                else if (game.HomeTeamId != newGame.HomeTeamId ||
                         game.AwayTeamId != newGame.HomeTeamId)
                {
                    throw new ArgumentException(string.Format(
                                                    Resources.SameTeamInRound,
                                                    (game.HomeTeamId == newGame.HomeTeamId)
                            ? game.HomeTeamName
                            : game.AwayTeamName));
                }
            }
            else
            {
                throw new ArgumentException(string.Format(
                                                Resources.SameTeamInRound,
                                                (game.HomeTeamId == newGame.HomeTeamId ||
                                                 game.HomeTeamId == newGame.AwayTeamId)
                        ? game.HomeTeamName
                        : game.AwayTeamName));
            }
        }