public async Task <IActionResult> Create()
        {
            NewRoulette newRoulette = new NewRoulette {
                Bets = new List <RoulettePlayer>()
            };
            await _DBDynamo.Insert(newRoulette);

            return(Ok(newRoulette));
        }
Esempio n. 2
0
        public async Task UpdateRoulette(NewRoulette rouletteToRetrieve, RouletteBet rouletteUpdated)
        {
            var rouletteRetrived = await _DynamoDb.Get(rouletteToRetrieve);

            if (!rouletteRetrived.Status)
            {
                return;
            }
            rouletteRetrived.Bets.Add(rouletteUpdated.Player);
            await _DynamoDb.Insert(rouletteRetrived);
        }
        public async Task <IActionResult> Open([FromQuery] string Id)
        {
            NewRoulette newRoulette = new NewRoulette
            {
                Id     = Id,
                Status = true,
                Bets   = new List <RoulettePlayer>()
            };
            await _DBDynamo.Update(newRoulette);

            return(Ok(newRoulette));
        }
Esempio n. 4
0
        private async Task <bool> ProcessMessageAsync(SQSEvent.SQSMessage message, ILambdaContext context)
        {
            var         rouletteBet     = JsonConvert.DeserializeObject <RouletteBet>(message.Body);
            NewRoulette currentRoulette = new NewRoulette {
                Id = rouletteBet.RouletteId
            };

            await UpdateRoulette(rouletteToRetrieve : currentRoulette, rouletteUpdated : rouletteBet);
            await UpdateCash(new UserDynamo
            {
                Cash  = rouletteBet.Player.Cash,
                Email = rouletteBet.Player.Email
            });

            return(true);
        }
        public async Task <IActionResult> Close([FromQuery] string Id)
        {
            int         winnerMove  = new Random().Next(0, 36);
            NewRoulette newRoulette = new NewRoulette {
                Id = Id, Status = false, WinnerMove = winnerMove
            };
            var roulettes = await _DBDynamo.Get(newRoulette);

            foreach (var player in roulettes.Bets)
            {
                if (RouletteCalculator.IsWinner(winnerMove: winnerMove, player: player))
                {
                    var jsonObject = JsonConvert.SerializeObject(
                        new RouletteWinner {
                        Player = player, Prize = RouletteCalculator.Prize(player)
                    });
                    await _Queue.SendMessageAsync(message : jsonObject, sqsUrl : sqsWinner);
                }
            }
            await _DBDynamo.Insert(newRoulette);

            return(Ok(roulettes));
        }