private static void ValidateGameInRoundOnCreate(
     Game newGame,
     List <GameResultDto> gamesInRound,
     TournamentScheduleDto tournamentScheduleInfo)
 {
     // We are sure that newGame is been created, not edited
     foreach (GameResultDto game in gamesInRound)
     {
         if (GameValidation.AreSameTeamsInGames(game, newGame))
         {
             ValidateAreSameTeamsInGames(game, newGame, tournamentScheduleInfo);
         }
         else if (GameValidation.IsTheSameTeamInTwoGames(game, newGame))
         {
             ValidateIsTheSameTeamInTwoGames(game, newGame, tournamentScheduleInfo);
         }
     }
 }
        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));
            }
        }