Ejemplo n.º 1
0
        public ActionResult <BetResultDTO> GuessNumber(BetDTO bet)
        {
            if (ModelState.IsValid)
            {
                if (bet.Number >= 1 && bet.Number <= 9)
                {
                    var claims = User.Claims.ToList();

                    string username = claims.FirstOrDefault(x => x.Type == "Username").Value;

                    BetResultDTO betresult = _gameRoundService.GameRoundBet(bet, username);

                    if (betresult == null)
                    {
                        return(BadRequest("Wrong bet parameters"));
                    }

                    return(betresult);
                }
                else
                {
                    return(BadRequest("Insert a valid number between 1 and 9"));
                }
            }
            else
            {
                return(BadRequest("Invalid model"));
            }
        }
Ejemplo n.º 2
0
        public BetResultDTO GameRoundBet(BetDTO bet, string username)
        {
            BetResultDTO result = new BetResultDTO();

            PersonDTO person = _personService.GetPersonByEmail(username);

            if (person != null && bet.Bet <= person.Points)
            {
                Random rd           = new Random();
                int    randomNumber = rd.Next(0, 9);

                if (randomNumber == bet.Number)
                {
                    int winnerPoints = bet.Bet * 9;
                    person.Points   += winnerPoints;
                    result.PointsWon = winnerPoints;
                    result.Status    = "Won";
                }
                else
                {
                    person.Points   -= bet.Bet;
                    result.PointsWon = -bet.Bet;
                    result.Status    = "Lost";
                }

                result.CurrentPoints = person.Points;
                result.Username      = username;
                result.Bet           = bet.Bet;
                result.RandomResult  = randomNumber;
                createGameRound(person, result);
                _personService.Update(person);
            }

            return(result);
        }
Ejemplo n.º 3
0
        private void createGameRound(PersonDTO person, BetResultDTO betResultDTO)
        {
            GameRound game = new GameRound();

            game.Bet          = betResultDTO.Bet;
            game.GameDate     = DateTime.Now;
            game.PersonId     = person.Id;
            game.RandomResult = betResultDTO.RandomResult;
            game.Result       = betResultDTO.Status == "Won" ? true : false;
            //game.isResult = betResultDTO.Status == "Won" ? 1 : 0;
            game.Reward = betResultDTO.PointsWon;

            context.GameRound.Add(game);
            context.SaveChanges();
        }