void AdvanceToNextInningTeamBatter() { if (AdvanceToNextHalfInning == true) { AdvanceToNextInningTeam(); } else { if (CurrentGameInning != null && CurrentGameInningTeam != null) { Guid?nextPlayerToBat = GameInningTeamBatter.GetNextGameBatterPlayerId(GameId, AtBatTeamId); if (nextPlayerToBat.HasValue) { int batterSequence = CurrentGameInningTeamBatter != null ? CurrentGameInningTeamBatter.Sequence + 1 : 0; GameInningTeamBatterDto gameInningTeamBatter = new GameInningTeamBatterDto() { PlayerId = nextPlayerToBat.Value, GameInningTeamId = CurrentGameInningTeam.GameInningTeamId, EventType = (int)EventType.Unknown, RBIs = 0, Sequence = InningBatterSequence }; GameInningTeamBatter.Save(gameInningTeamBatter); FillCurrentAtBatTeamPlayer(); } } } }
public void NextGameInningTeamBatterTest() { //seed teams Guid teamOneId = SeedTeam(); Guid teamTwoId = SeedTeamTwo(); //seed players Guid playerOneId = SeedPlayer(); Guid playerTwoId = SeedPlayerTwo(); Guid playerThreeId = SeedPlayerThree(); Guid playerFourId = SeedPlayerFour(); //seed team lineups List <Guid> teamOneLineup = new List <Guid> { playerOneId, playerTwoId, playerThreeId, playerFourId }; SeedTeamPlayerLineup(teamOneId, teamOneLineup); List <Guid> teamTwoLineup = new List <Guid> { playerFourId, playerThreeId, playerTwoId, playerOneId }; SeedTeamPlayerLineup(teamTwoId, teamTwoLineup); //seed game Guid gameId = SeedGame(); Guid gameTeamOneId = SeedGameTeam(gameId, teamOneId, battingSequence: 0); Guid gameTeamTwoId = SeedGameTeam(gameId, teamTwoId, battingSequence: 1); GameInningDto gameInningDto = new GameInningDto() { InningNumber = 1, GameId = gameId, GameInningId = Guid.NewGuid() }; GameInning.AddNew(gameInningDto); GameInningTeamDto gameInningTeamDto = new GameInningTeamDto() { GameTeamId = gameTeamOneId, GameInningId = gameInningDto.GameInningId, GameInningTeamId = Guid.NewGuid() }; GameInningTeam.AddNew(gameInningTeamDto); //see if the first player in the linup is selected Guid?nextBatterId = GameInningTeamBatter.GetNextGameBatterPlayerId(gameId, teamOneId); Assert.AreEqual(nextBatterId, playerOneId); GameInningTeamBatterDto gameInningTeamBatterDto = new GameInningTeamBatterDto() { GameInningTeamId = gameInningTeamDto.GameInningTeamId, PlayerId = playerOneId, EventType = (int)EventType.Out, GameInningTeamBatterId = Guid.NewGuid(), Sequence = 0 }; GameInningTeamBatter.AddNew(gameInningTeamBatterDto); //see if the second player in the lineup is selected nextBatterId = GameInningTeamBatter.GetNextGameBatterPlayerId(gameId, teamOneId); Assert.AreEqual(nextBatterId, playerTwoId); GameInningTeamBatterDto gameInningTeamBatter2Dto = new GameInningTeamBatterDto() { GameInningTeamId = gameInningTeamDto.GameInningTeamId, PlayerId = playerTwoId, EventType = (int)EventType.Single, GameInningTeamBatterId = Guid.NewGuid(), Sequence = 1 }; GameInningTeamBatter.AddNew(gameInningTeamBatter2Dto); //see if the thrid batter is selected nextBatterId = GameInningTeamBatter.GetNextGameBatterPlayerId(gameId, teamOneId); Assert.AreEqual(nextBatterId, playerThreeId); GameInningTeamBatterDto gameInningTeamBatter3Dto = new GameInningTeamBatterDto() { GameInningTeamId = gameInningTeamDto.GameInningTeamId, PlayerId = playerThreeId, EventType = (int)EventType.Single, GameInningTeamBatterId = Guid.NewGuid(), Sequence = 2 }; GameInningTeamBatter.AddNew(gameInningTeamBatter3Dto); //see if fourth batter is selected nextBatterId = GameInningTeamBatter.GetNextGameBatterPlayerId(gameId, teamOneId); Assert.AreEqual(nextBatterId, playerFourId); GameInningTeamBatterDto gameInningTeamBatter4Dto = new GameInningTeamBatterDto() { GameInningTeamId = gameInningTeamDto.GameInningTeamId, PlayerId = playerFourId, EventType = (int)EventType.Single, GameInningTeamBatterId = Guid.NewGuid(), Sequence = 3 }; GameInningTeamBatter.AddNew(gameInningTeamBatter4Dto); //see if first batter is up again nextBatterId = GameInningTeamBatter.GetNextGameBatterPlayerId(gameId, teamOneId); Assert.AreEqual(nextBatterId, playerOneId); //cleanup test data DeleteSeededTeam(teamOneId); DeleteSeededTeam(teamTwoId); DeleteSeededTeamPlayerLineup(teamOneId); DeleteSeededTeamPlayerLineup(teamTwoId); DeleteSeededGame(gameId); DeleteSeededPlayer(playerOneId); DeleteSeededPlayer(playerTwoId); DeleteSeededPlayer(playerThreeId); DeleteSeededPlayer(playerFourId); }