Example #1
0
        public void DeleteScore(int oficialGameId)
        {
            OficialGameSaveRequest oficialGameSaveRequest = new OficialGameSaveRequest();

            oficialGameSaveRequest.UserId        = GetUserId();
            oficialGameSaveRequest.OficialGameId = oficialGameId;
            _oficialGameService.DeleteScore(oficialGameSaveRequest);
        }
Example #2
0
        public void DeleteScore(OficialGameSaveRequest oficialGameSaveRequest)
        {
            //--- validações
            _oficialGameValidation.CanUpdateScore(oficialGameSaveRequest.UserId);

            //--- atualiza o resultado
            _oficialGameRepository.DeleteScore(oficialGameSaveRequest.OficialGameId);

            //--- remove o calculo do jogo com o placar deletado
            _userPointService.DeleteByOficialGameId(oficialGameSaveRequest.OficialGameId);
        }
Example #3
0
        public void UpdateScore(OficialGameSaveRequest oficialGameSaveRequest)
        {
            //--- validações
            _oficialGameValidation.ValidadeScore(oficialGameSaveRequest.ScoreTeamA);
            _oficialGameValidation.ValidadeScore(oficialGameSaveRequest.ScoreTeamB);
            _oficialGameValidation.CanUpdateScore(oficialGameSaveRequest.UserId);

            //--- atualiza o resultado
            _oficialGameRepository.UpdateScore(oficialGameSaveRequest);

            //--- calcula os pontos dos palpites dos usuarios
            _userPointService.Calculate(oficialGameSaveRequest);
        }
        public void UpdateScore(OficialGameSaveRequest oficialGameSaveRequest)
        {
            using (SqlConnection conn = new SqlConnection(ConnectionString())) {
                using (var cmd = new SqlCommand()) {
                    cmd.Connection  = conn;
                    cmd.CommandText = _oficialGameSql.SqlUpdateScore();
                    cmd.CommandType = CommandType.Text;
                    cmd.Parameters.AddWithValue("@OficialGameId", GetDbValue(oficialGameSaveRequest.OficialGameId));
                    cmd.Parameters.AddWithValue("@ScoreTeamA", GetDbValue(oficialGameSaveRequest.ScoreTeamA));
                    cmd.Parameters.AddWithValue("@ScoreTeamB", GetDbValue(oficialGameSaveRequest.ScoreTeamB));

                    conn.Open();
                    cmd.ExecuteNonQuery();
                }
            }
        }
Example #5
0
        public void Calculate(OficialGameSaveRequest oficialGame)
        {
            List <UserPoint> userPoints = new List <UserPoint> (0);

            //--- obter a lista de resultados do usuário do jogo que deseja calcular
            List <UserGameScore> userGameScores = _userGameService.ListByOficialGameId(oficialGame.OficialGameId);

            //--- loop para calcular
            foreach (var userGameScore in userGameScores)
            {
                //--- resultado de vitoria certo com placar certo
                if ((oficialGame.ScoreTeamA == userGameScore.ScoreTeamA && oficialGame.ScoreTeamB == userGameScore.ScoreTeamB) &&
                    ((oficialGame.ScoreTeamA > oficialGame.ScoreTeamB && userGameScore.ScoreTeamA > userGameScore.ScoreTeamB) ||
                     (oficialGame.ScoreTeamA < oficialGame.ScoreTeamB && userGameScore.ScoreTeamA < userGameScore.ScoreTeamB)))
                {
                    userPoints.Add(new UserPoint {
                        UserId        = userGameScore.UserId,
                        OficialGameId = userGameScore.OficialGameId,
                        PointType     = PointTypeEnum.ResultadoDeVitoriaCertoComPlacarCerto
                    });
                    continue;
                }

                //--- resultado de vitoria certo com um placar certo
                if ((oficialGame.ScoreTeamA == userGameScore.ScoreTeamA || oficialGame.ScoreTeamB == userGameScore.ScoreTeamB) &&
                    ((oficialGame.ScoreTeamA > oficialGame.ScoreTeamB && userGameScore.ScoreTeamA > userGameScore.ScoreTeamB) ||
                     (oficialGame.ScoreTeamA < oficialGame.ScoreTeamB && userGameScore.ScoreTeamA < userGameScore.ScoreTeamB)))
                {
                    userPoints.Add(new UserPoint {
                        UserId        = userGameScore.UserId,
                        OficialGameId = userGameScore.OficialGameId,
                        PointType     = PointTypeEnum.ResultadoDeVitoriaCertoComUmPlacarCerto
                    });
                    continue;
                }

                //--- resultado de vitoria certo com um placar errado
                if ((oficialGame.ScoreTeamA != userGameScore.ScoreTeamA && oficialGame.ScoreTeamB != userGameScore.ScoreTeamB) &&
                    ((oficialGame.ScoreTeamA > oficialGame.ScoreTeamB && userGameScore.ScoreTeamA > userGameScore.ScoreTeamB) ||
                     (oficialGame.ScoreTeamA < oficialGame.ScoreTeamB && userGameScore.ScoreTeamA < userGameScore.ScoreTeamB)))
                {
                    userPoints.Add(new UserPoint {
                        UserId        = userGameScore.UserId,
                        OficialGameId = userGameScore.OficialGameId,
                        PointType     = PointTypeEnum.ResultadoDeVitoriaCertoComPlacarErrado
                    });
                    continue;
                }

                //--- Resultado de empate certo com placar certo
                if (oficialGame.ScoreTeamA == userGameScore.ScoreTeamA &&
                    oficialGame.ScoreTeamB == userGameScore.ScoreTeamB &&
                    oficialGame.ScoreTeamA == oficialGame.ScoreTeamB)
                {
                    userPoints.Add(new UserPoint {
                        UserId        = userGameScore.UserId,
                        OficialGameId = userGameScore.OficialGameId,
                        PointType     = PointTypeEnum.ResultadoDeEmpateCertoComPlacarCerto
                    });
                    continue;
                }

                //--- Resultado de empate certo com placar errado
                if (oficialGame.ScoreTeamA != userGameScore.ScoreTeamA &&
                    oficialGame.ScoreTeamB != userGameScore.ScoreTeamB &&
                    oficialGame.ScoreTeamA == oficialGame.ScoreTeamB &&
                    userGameScore.ScoreTeamA == userGameScore.ScoreTeamB)
                {
                    userPoints.Add(new UserPoint {
                        UserId        = userGameScore.UserId,
                        OficialGameId = userGameScore.OficialGameId,
                        PointType     = PointTypeEnum.ResultadoDeEmpateCertoComPlacarErrado
                    });
                    continue;
                }

                //--- caso o resultado esteja errado
                userPoints.Add(new UserPoint {
                    UserId        = userGameScore.UserId,
                    OficialGameId = userGameScore.OficialGameId,
                    PointType     = PointTypeEnum.ResultadoErrado
                });
            }

            _userPointRepository.Create(userPoints);

            List(ignoreCache: true);
        }
Example #6
0
 public void UpdateScore([FromBody] OficialGameSaveRequest oficialGameSaveRequest)
 {
     oficialGameSaveRequest.UserId = GetUserId();
     _oficialGameService.UpdateScore(oficialGameSaveRequest);
 }