Esempio n. 1
0
 /// <summary>
 /// data layer will determine add vs update
 /// </summary>
 /// <param name="gameInningTeam"></param>
 public void Save(GameInningTeamDto gameInningTeam)
 {
     if (ExistsInDb(gameInningTeam))
     {
         Update(gameInningTeam);
     }
     else
     {
         AddNew(gameInningTeam);
     }
 }
Esempio n. 2
0
        public void GameNextInningTeamTest()
        {
            Guid teamOneId = SeedTeam();
            Guid teamTwoId = SeedTeamTwo();

            var teamOne = Team.GetTeam(teamOneId);
            var teamTwo = Team.GetTeam(teamTwoId);

            Assert.IsNotNull(teamOne);
            Assert.IsNotNull(teamTwo);

            Guid gameId = SeedGame();

            Guid gtOneId = SeedGameTeam(gameId, teamOne.TeamId, battingSequence: 0);
            Guid gtTwoId = SeedGameTeam(gameId, teamTwo.TeamId, battingSequence: 1);

            GameInningDto gameInningDto = new GameInningDto()
            {
                InningNumber = 1,
                GameId       = gameId,
                GameInningId = Guid.NewGuid()
            };

            GameInning.AddNew(gameInningDto);

            Guid?nextTeamId = GameInningTeam.GetNextAtBatTeamId(gameId);

            Assert.AreEqual(nextTeamId, teamOne.TeamId);

            GameInningTeamDto dto = new GameInningTeamDto()
            {
                GameInningTeamId = Guid.NewGuid(),
                GameTeamId       = gtOneId,
                GameInningId     = gameInningDto.GameInningId,
                Outs             = 0,
                Score            = 0
            };

            GameInningTeam.AddNew(dto);

            nextTeamId = GameInningTeam.GetNextAtBatTeamId(gameId);
            Assert.AreEqual(nextTeamId, teamTwo.TeamId);

            gameInningDto.InningNumber = 2;
            gameInningDto.GameInningId = Guid.NewGuid();
            GameInning.AddNew(gameInningDto);

            nextTeamId = GameInningTeam.GetNextAtBatTeamId(gameId);
            Assert.AreEqual(teamOne.TeamId, nextTeamId);

            DeleteSeededGame(gameId);
            DeleteSeededTeam(teamOneId);
            DeleteSeededTeam(teamTwoId);
        }
Esempio n. 3
0
        public bool ExistsInDb(GameInningTeamDto gameInningTeam)
        {
            Connection.BeginTransaction();

            var rows = Connection.Query <int>(@"SELECT COUNT(1) as 'Count' FROM GameInningTeam 
            WHERE GameTeamId = @GameTeamId AND GameInningId = @GameInningId",
                                              new { gameInningTeam.GameTeamId, gameInningTeam.GameInningId });

            Connection.Commit();

            return(rows.First() > 0);
        }
Esempio n. 4
0
        public void SaveEventType(EventType eventType)
        {
            if (CurrentGameInning != null && CurrentGameInningTeam != null && CurrentGameInningTeamBatter != null)
            {
                //update the event for the current batter
                var currentBatter = GameInningTeamBatter.GetCurrentGameInningTeamBatter(GameId);
                if (currentBatter != null)
                {
                    GameInningTeamBatterDto gameInningTeamBatter = new GameInningTeamBatterDto()
                    {
                        GameInningTeamBatterId = currentBatter.GameInningTeamBatterId,
                        GameInningTeamId       = currentBatter.GameInningTeamId,
                        EventType = (int)eventType,
                        PlayerId  = currentBatter.PlayerId,
                        Sequence  = currentBatter.Sequence,
                        RBIs      = currentBatter.RBIs
                    };
                    GameInningTeamBatter.Update(gameInningTeamBatter);

                    //update outs, runs, and baserunners
                    var halfInningActions = HalfInning.GetHalfInningActions(CurrentGameInningTeam.GameInningTeamId);
                    Outs                    = halfInningActions.TotalOuts;
                    Runs                    = halfInningActions.TotalRuns;
                    IsRunnerOnFirst         = halfInningActions.IsRunnerOnFirst;
                    IsRunnerOnSecond        = halfInningActions.IsRunnerOnSecond;
                    IsRunnerOnThird         = halfInningActions.IsRunnerOnThird;
                    AdvanceToNextHalfInning = halfInningActions.AdvanceToNextHalfInning;

                    //update total runs
                    var currentInningTeam = GameInningTeam.GetCurrentGameInningTeam(GameId);
                    if (currentInningTeam != null)
                    {
                        GameInningTeamDto gameInningTeam = new GameInningTeamDto()
                        {
                            GameTeamId       = currentInningTeam.GameTeamId,
                            GameInningTeamId = currentInningTeam.GameInningTeamId,
                            GameInningId     = currentInningTeam.GameInningId,
                            IsRunnerOnFirst  = IsRunnerOnFirst,
                            IsRunnerOnSecond = IsRunnerOnSecond,
                            IsRunnerOnThird  = IsRunnerOnThird,
                            Outs             = Outs,
                            Score            = Runs
                        };
                        GameInningTeam.Update(gameInningTeam);
                    }
                }

                AdvanceToNextInningTeamBatter();
            }
        }
Esempio n. 5
0
        public void InvalidGameTeamIdTest()
        {
            GameInningTeamDto dto = new GameInningTeamDto()
            {
                GameInningId     = Guid.NewGuid(),
                Score            = TEST_SCORE,
                Outs             = TEST_OUTS,
                IsRunnerOnFirst  = TEST_IS_RUNNER_ON_FIRST,
                IsRunnerOnSecond = TEST_IS_RUNNER_ON_SECOND,
                IsRunnerOnThird  = TEST_IS_RUNNER_ON_THIRD
            };
            var result = GameInningTeam.AddNew(dto);

            Assert.IsFalse(result.IsSuccess);
        }
Esempio n. 6
0
        private void UpdateGameInningTeam(GameInningTeamDto gameInningTeam)
        {
            string updateQuery = @"UPDATE GameInningTeam
            SET GameInningTeamId = @GameInningTeamId,
            Score = @Score, 
            Outs = @Outs,
            IsRunnerOnFirst = @IsRunnerOnFirst,
            IsRunnerOnSecond = @IsRunnerOnSecond,
            IsRunnerOnThird = @IsRunnerOnThird,
            DeleteDate = @DeleteDate
            WHERE GameTeamId = @GameTeamId AND GameInningId = @GameInningId";

            Connection.BeginTransaction();
            Connection.Execute(updateQuery, gameInningTeam);
            Connection.Commit();
        }
Esempio n. 7
0
        public GameInningTeamDto LoadByCompositeKey(Guid gameTeamId, Guid gameInningId)
        {
            GameInningTeamDto gameInningTeam = null;

            Connection.BeginTransaction();

            var result = Connection.Query <GameInningTeamDto>(
                SELECT_QUERY + " WHERE GameTeamId = @GameTeamId " +
                "AND GameInningId = @GameInningId",
                new { GameTeamId = gameTeamId.ToString(), GameInningId = gameInningId.ToString() });

            gameInningTeam = result.FirstOrDefault();

            Connection.Commit();

            return(gameInningTeam);
        }
Esempio n. 8
0
        public Guid SeedGameInningTeam()
        {
            Guid gameInningTeamId = Guid.NewGuid();
            Guid seedGameInningId = SeedGameInning();
            Guid seedGameTeamId   = SeedGameTeam();

            GameInningTeamDto dto = new GameInningTeamDto()
            {
                GameInningTeamId = gameInningTeamId,
                GameInningId     = seedGameInningId,
                GameTeamId       = seedGameTeamId,
                Outs             = 0,
                Score            = 0
            };

            GameInningTeam.AddNew(dto);

            return(gameInningTeamId);
        }
Esempio n. 9
0
        private void InsertGameInningTeam(GameInningTeamDto gameInningTeam)
        {
            string insertQuery = @"INSERT INTO GameInningTeam
                    (GameInningTeamId, GameInningId, GameTeamId, Score, 
                    Outs, IsRunnerOnFirst, IsRunnerOnSecond, IsRunnerOnThird, DeleteDate)
                    VALUES(
                        @GameInningTeamId, 
                        @GameInningId, 
                        @GameTeamId, 
                        @Score,
                        @Outs,
                        @IsRunnerOnFirst,
                        @IsRunnerOnSecond, 
                        @IsRunnerOnThird, 
                        @DeleteDate)";

            Connection.BeginTransaction();
            Connection.Execute(insertQuery, gameInningTeam);
            Connection.Commit();
        }
Esempio n. 10
0
        void AdvanceToNextInningTeam(bool isBeginingOfGame = false)
        {
            ClearBoard();
            if (CurrentGameInning != null)
            {
                Guid?nextAtBatTeamId = GameInningTeam.GetNextAtBatTeamId(GameId);
                if (nextAtBatTeamId.HasValue)
                {
                    var atBatGameTeam = GameTeams.FirstOrDefault(y => y.TeamId == nextAtBatTeamId.Value);

                    bool shouldAdvanceInning = GameTeams.IndexOf(atBatGameTeam) == 0 && isBeginingOfGame == false;
                    if (shouldAdvanceInning == false)
                    {
                        GameInningTeamDto gameInningTeam = new GameInningTeamDto()
                        {
                            GameTeamId       = atBatGameTeam.GameTeamId,
                            GameInningId     = CurrentGameInning.GameInningId,
                            IsRunnerOnFirst  = false,
                            IsRunnerOnThird  = false,
                            IsRunnerOnSecond = false,
                            Outs             = 0,
                            Score            = 0
                        };
                        GameInningTeam.AddNew(gameInningTeam);
                        FillCurrentAtBatTeam();
                        AdvanceToNextInningTeamBatter();
                    }
                    else
                    {
                        if (IsGameOver() == true)
                        {
                            GameComplete();
                        }
                        else
                        {
                            AdvanceToNextInning();
                        }
                    }
                }
            }
        }
Esempio n. 11
0
        public void GameInningTeamBatterCurrentBatterTest()
        {
            //seed teams
            Guid teamOneId = SeedTeam();
            Guid teamTwoId = SeedTeamTwo();

            //seed players
            Guid playerOneId   = SeedPlayer();
            Guid playerTwoId   = SeedPlayerTwo();
            Guid playerThreeId = SeedPlayerThree();
            Guid playerFourId  = SeedPlayerFour();

            //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);


            GameInningTeamBatterDto gameInningTeamBatterDto = new GameInningTeamBatterDto()
            {
                GameInningTeamId       = gameInningTeamDto.GameInningTeamId,
                PlayerId               = playerOneId,
                EventType              = (int)EventType.Out,
                GameInningTeamBatterId = Guid.NewGuid(),
                Sequence               = 0
            };

            GameInningTeamBatter.AddNew(gameInningTeamBatterDto);

            var currentBatter = GameInningTeamBatter.GetCurrentGameInningTeamBatter(gameId);

            Assert.IsNotNull(currentBatter);
            Assert.AreEqual(playerOneId, currentBatter.PlayerId);

            GameInningTeamBatterDto gameInningTeamBatter2Dto = new GameInningTeamBatterDto()
            {
                GameInningTeamId       = gameInningTeamDto.GameInningTeamId,
                PlayerId               = playerTwoId,
                EventType              = (int)EventType.Single,
                GameInningTeamBatterId = Guid.NewGuid(),
                Sequence               = 1
            };

            GameInningTeamBatter.AddNew(gameInningTeamBatter2Dto);

            currentBatter = GameInningTeamBatter.GetCurrentGameInningTeamBatter(gameId);
            Assert.IsNotNull(currentBatter);
            Assert.AreEqual(currentBatter.PlayerId, playerTwoId);

            //cleanup test data
            DeleteSeededTeam(teamOneId);
            DeleteSeededTeam(teamTwoId);
            DeleteSeededGame(gameId);
            DeleteSeededPlayer(playerOneId);
            DeleteSeededPlayer(playerTwoId);
            DeleteSeededPlayer(playerThreeId);
            DeleteSeededPlayer(playerFourId);
        }
Esempio n. 12
0
        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);
        }
Esempio n. 13
0
 public void Update(GameInningTeamDto gameInningTeam)
 {
     UpdateGameInningTeam(gameInningTeam);
 }
Esempio n. 14
0
 public void AddNew(GameInningTeamDto gameInningTeam)
 {
     InsertGameInningTeam(gameInningTeam);
 }
Esempio n. 15
0
        public void AddUpdateGameInningTeamTest()
        {
            Guid seedGameInningId = SeedGameInning();
            Guid seedGameTeamId   = SeedGameTeam();

            GameInningTeamDto dto = new GameInningTeamDto()
            {
                GameInningId     = seedGameInningId,
                GameTeamId       = seedGameTeamId,
                Score            = TEST_SCORE,
                Outs             = TEST_OUTS,
                IsRunnerOnFirst  = TEST_IS_RUNNER_ON_FIRST,
                IsRunnerOnSecond = TEST_IS_RUNNER_ON_SECOND,
                IsRunnerOnThird  = TEST_IS_RUNNER_ON_THIRD
            };

            var addResult = GameInningTeam.AddNew(dto);

            Assert.IsTrue(addResult.IsSuccess);

            var item = GameInningTeam.GetGameInningTeam(seedGameTeamId, seedGameInningId);

            Assert.IsNotNull(item);
            Assert.AreEqual(seedGameInningId, item.GameInningId);
            Assert.AreEqual(seedGameTeamId, item.GameTeamId);
            Assert.AreEqual(TEST_SCORE, item.Score);
            Assert.AreEqual(TEST_OUTS, item.Outs);
            Assert.AreEqual(TEST_IS_RUNNER_ON_FIRST, item.IsRunnerOnFirst);
            Assert.AreEqual(TEST_IS_RUNNER_ON_SECOND, item.IsRunnerOnSecond);
            Assert.AreEqual(TEST_IS_RUNNER_ON_THIRD, item.IsRunnerOnThird);

            dto.GameInningTeamId = item.GameInningTeamId;
            dto.Score            = TEST_SCORE_2;
            dto.Outs             = TEST_OUTS_2;
            dto.IsRunnerOnFirst  = TEST_IS_RUNNER_ON_FIRST_2;
            dto.IsRunnerOnSecond = TEST_IS_RUNNER_ON_SECOND_2;
            dto.IsRunnerOnThird  = TEST_IS_RUNNER_ON_THIRD_2;

            var updateResult = GameInningTeam.Update(dto);

            Assert.IsTrue(updateResult.IsSuccess);

            var inningTeams = GameInningTeam.GetInningTeams(seedGameInningId);

            Assert.IsTrue(inningTeams.Count >= 1);

            var teamInnings = GameInningTeam.GetTeamInnings(seedGameTeamId);

            Assert.IsTrue(teamInnings.Count >= 1);

            item = inningTeams.FirstOrDefault(x => x.GameTeamId == seedGameTeamId);
            Assert.IsNotNull(item);
            Assert.AreEqual(seedGameInningId, item.GameInningId);
            Assert.AreEqual(seedGameTeamId, item.GameTeamId);
            Assert.AreEqual(TEST_SCORE_2, item.Score);
            Assert.AreEqual(TEST_OUTS_2, item.Outs);
            Assert.AreEqual(TEST_IS_RUNNER_ON_FIRST_2, item.IsRunnerOnFirst);
            Assert.AreEqual(TEST_IS_RUNNER_ON_SECOND_2, item.IsRunnerOnSecond);
            Assert.AreEqual(TEST_IS_RUNNER_ON_THIRD_2, item.IsRunnerOnThird);

            var removeResult = GameInningTeam.Remove(seedGameInningId, seedGameTeamId);

            Assert.IsTrue(removeResult.IsSuccess);

            item = GameInningTeam.GetGameInningTeam(seedGameTeamId, seedGameInningId);
            Assert.IsNull(item);

            DeleteSeededGameInning(seedGameInningId);
            DeleteSeededGameTeam(seedGameTeamId);
        }