Ejemplo n.º 1
0
 private void PutFreeDayTeamAsAway(Game game)
 {
     if (GameValidation.IsFreeDayTeam(game.HomeTeamId))
     {
         SwitchTeamsOrder(game);
     }
 }
Ejemplo n.º 2
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);
        }
 public GameApplicationService(
     IGameUnitOfWork uow,
     GameValidation gameValidation,
     AccountApplicationService accountApplicationService)
 {
     _uow                       = uow;
     _gameValidation            = gameValidation;
     _accountApplicationService = accountApplicationService;
 }
Ejemplo n.º 4
0
 private void SwitchTeamsOrder(Game game)
 {
     if (!GameValidation.IsFreeDayGame(game))
     {
         int?tempHomeId = game.HomeTeamId;
         game.HomeTeamId = game.AwayTeamId;
         game.AwayTeamId = tempHomeId;
     }
 }
Ejemplo n.º 5
0
        public async void CreateItemWithError()
        {
            var gameVw = GameTestData.Get();
            var game   = _mapper.Map <Game>(gameVw);

            _gameMock.Setup(x => x.Add(It.IsAny <Game>())).ReturnsAsync(game);

            var newGame = await _gameApplication.Add(gameVw);

            var validation = new GameValidation(_gameApplication).Validate(gameVw);

            Assert.False(validation.IsValid);
        }
Ejemplo n.º 6
0
        public async void CreateItemWithErrorValidation(string name)
        {
            var gameVw = new GameViewModel(0, name, "new description", 1, null, true, false);
            var game   = _mapper.Map <Game>(gameVw);

            _gameMock.Setup(x => x.Add(It.IsAny <Game>())).ReturnsAsync(game);

            var newGame = await _gameApplication.Add(gameVw);

            var validation = new GameValidation(_gameApplication).Validate(gameVw);

            Assert.False(validation.IsValid);
            Assert.True(validation.Errors.Where(x => x.ErrorMessage == "Nome não foi informado.").Any());
        }
Ejemplo n.º 7
0
 private void ValidateTeams(int?homeTeamId, int?awayTeamId, TournamentScheduleDto tournamentScheduleInfo)
 {
     if (tournamentScheduleInfo.Scheme == TournamentSchemeEnum.PlayOff)
     {
         if (!(homeTeamId == null && awayTeamId == null) &&
             GameValidation.AreTheSameTeams(homeTeamId, awayTeamId))
         {
             throw new ArgumentException(Resources.GameResultSameTeam);
         }
     }
     else if (GameValidation.AreTheSameTeams(homeTeamId, awayTeamId))
     {
         throw new ArgumentException(Resources.GameResultSameTeam);
     }
 }
Ejemplo n.º 8
0
 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);
         }
     }
 }
Ejemplo n.º 9
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.º 10
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.º 11
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.º 12
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));
            }
        }