public async Task <IActionResult> Create() { NewRoulette newRoulette = new NewRoulette { Bets = new List <RoulettePlayer>() }; await _DBDynamo.Insert(newRoulette); return(Ok(newRoulette)); }
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)); }
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)); }