Esempio n. 1
0
        public async Task <bool> CreateNewGameByPlayerId(DTONewPlayerGame newPlayerGame)
        {
            try
            {
                var game = await _context.Game.Include("Course.Holes").SingleAsync(g => g.Id == newPlayerGame.GameId);

                //    var courseHole = await _context.Course.Include(h => h.Holes).FirstOrDefaultAsync(c => c.Id == game.Course);
                var player = await _context.Player.SingleAsync(p => p.Id == newPlayerGame.PlayerId);

                var playerHoleScoreList = new List <PlayerHoleScore>();
                var pscors = _context.Score.Where(x => x.Player.Id == newPlayerGame.PlayerId && x.Game.Id == newPlayerGame.GameId).SingleOrDefault();

                if (pscors == null)
                {
                    foreach (var hole in game.Course.Holes)
                    {
                        var playerScore = new PlayerHoleScore
                        {
                            Player = player,
                            Hole   = hole,
                            Points = 0,
                            Score  = 0
                        };
                        playerHoleScoreList.Add(playerScore);
                    }
                    var score = new Score
                    {
                        Player = player,
                        Game   = game,
                        Holes  = playerHoleScoreList
                    };

                    await _context.AddAsync(score);

                    await _context.SaveChangesAsync();

                    return(true);
                }
                else
                {
                    return(true);
                }
            }
            catch (Exception e)
            {
                return(false);
            }
        }
Esempio n. 2
0
        public void UpdatePlayerStroke(DTOPlayerStroke value)
        {
            try
            {
                Player player = dbContext.Player.Where(p => p.Id == value.playerId).First();
                Hole   hole   = dbContext.Hole.Where(h => h.Id == value.holeId).First();

                int par    = hole.Par;
                int stroke = hole.Stroke;

                double handicap    = player.HandiCap;
                double handCOver18 = 0;
                if (handicap > 18)
                {
                    handCOver18 = handicap - 18;
                }

                PlayerHoleScore playerStroke = dbContext.PlayerHoleScore.Include(z => z.Player).Include(x => x.Hole)
                                               .Include(y => y.GameScore).Include("GameScore.Game")
                                               .Where(p => p.Player.Id == value.playerId && p.Hole.Id == value.holeId && p.GameScore.Game.Id == value.gameId).Single();

                if (playerStroke == null)
                {
                    int score = 0;


                    if (value.Strokes == par + 1)
                    {
                        score = 1;
                    }

                    if (value.Strokes == par)
                    {
                        score = 2;
                    }

                    if (value.Strokes == par - 1)
                    {
                        score = 3;
                    }
                    if (value.Strokes == par - 2)
                    {
                        score = 4;
                    }
                    if (value.Strokes == par - 3)
                    {
                        score = 5;
                    }
                    if (value.Strokes == par - 4)
                    {
                        score = 6;
                    }


                    if (stroke <= handicap)
                    {
                        if (value.Strokes <= par + 2)
                        {
                            score++;
                        }
                    }

                    if (stroke <= handCOver18)
                    {
                        if (value.Strokes <= par + 3)
                        {
                            score++;
                        }
                    }

                    playerStroke.Score        = value.Strokes;
                    playerStroke.Points       = score;
                    playerStroke.ScoreUpdated = DateTime.Now;
                    dbContext.Add(playerStroke);
                    dbContext.SaveChanges();
                }
                else
                {
                    int score = 0;


                    if (value.Strokes == par + 1)
                    {
                        score = 1;
                    }

                    if (value.Strokes == par)
                    {
                        score = 2;
                    }

                    if (value.Strokes == par - 1)
                    {
                        score = 3;
                    }
                    if (value.Strokes == par - 2)
                    {
                        score = 4;
                    }
                    if (value.Strokes == par - 3)
                    {
                        score = 5;
                    }
                    if (value.Strokes == par - 4)
                    {
                        score = 6;
                    }


                    if (stroke <= handicap)
                    {
                        if (value.Strokes <= par + 2)
                        {
                            score++;
                        }
                    }

                    if (stroke <= handCOver18)
                    {
                        if (value.Strokes <= par + 3)
                        {
                            score++;
                        }
                    }

                    playerStroke.Score        = value.Strokes;
                    playerStroke.Points       = score;
                    playerStroke.ScoreUpdated = DateTime.Now;
                    dbContext.SaveChanges();
                }
            }
            catch (Exception e)
            {
                throw;
            }
        }