Beispiel #1
0
        public async Task <ClosedBetResult> CloseBet(Guid rouletteId)
        {
            var result   = new ClosedBetResult();
            var roulette = await _rouletteRepository.GetRoulette(new Roulette
            {
                Id = rouletteId
            });

            if (roulette == null)
            {
                result.Success = false;
                result.Message = "Roulette not found";
                return(result);
            }
            if (!roulette.Open)
            {
                result.Success = false;
                result.Message = "Roulette not Open,Please First Open the Roulette";
                return(result);
            }

            if (roulette.WinnerNumber != -1)
            {
                result.Success = false;
                result.Message = $"Roulette Already Played, the Winner is { roulette.WinnerNumber},With color {roulette.Color}";
                return(result);
            }
            await RunRoulette(roulette);


            var bets = await _betRepository.GetAllBetsByRoulette(rouletteId);

            //Change Winners
            UpdateBets(bets, roulette);

            result.Data    = bets;
            result.Success = true;

            return(result);
        }