public async Task <ResponseCode> GameRoulette(Entities.Bet betGame)
        {
            try
            {
                var rouletteGet = _rouletteService.GetRoulette(betGame.RouletteId);
                if (rouletteGet != null)
                {
                    if (rouletteGet.State == Convert.ToInt32(StateGame.Open))
                    {
                        if (ValidateBet(betGame))
                        {
                            await SaveBet(betGame);
                        }

                        return(ResponseCode.Ok);
                    }
                }

                return(ResponseCode.Rejected);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public CreateBetResponse MakeBet(CreateBetRequest betRequest, string clientId)
        {
            CreateBetResponse response = new CreateBetResponse();

            var currentRoulette = _redisHelper.FindRoulette(betRequest.RouletteId);

            if (!currentRoulette.IsOpen)
            {
                response.Message = "The roulette is Closed";
                return(response);
            }

            Entities.Bet newBet = new Entities.Bet();

            if (betRequest.TypeofBet == Enums.BetType.Color)
            {
                newBet.Color       = betRequest.Color;
                newBet.NumbertoBet = null;
            }
            else
            {
                newBet.Color       = Enums.BetColor.None;
                newBet.NumbertoBet = betRequest.NumbertoBet;
            }

            newBet.RouletteId = betRequest.RouletteId;
            newBet.Type       = betRequest.TypeofBet;
            newBet.MoneytoBet = betRequest.MoneytoBet;

            _redisHelper.CreateBet(newBet);
            response.Successful = true;
            response.Message    = "Success";

            return(response);
        }
예제 #3
0
        public void CreateBet(Entities.Bet bet)
        {
            var roulettes = GetRoulettes();

            Entities.Roulette currentRoulette = roulettes.Find(x => x.RouletteId == bet.RouletteId);
            currentRoulette.BetList.Add(bet);
            _database.StringSet(RouletteTable, JsonConvert.SerializeObject(roulettes));
        }
        public async Task <int> SaveBet(Entities.Bet gameBet)
        {
            try
            {
                var optionsBuilder = new DbContextOptionsBuilder <Data.Context.RouletteContext>();
                optionsBuilder.UseSqlServer("RouletteContext");
                using var context = new RouletteContext(optionsBuilder.Options);
                context.Bet.Add(gameBet);
                if (await context.SaveChangesAsync() > 0)
                {
                    return(gameBet.Id);
                }

                return(0);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public bool ValidateBet(Entities.Bet betGame)
        {
            try
            {
                if (betGame.Number > 36)
                {
                    return(false);
                }
                if (betGame.Color != Convert.ToInt32(ColorGame.Black) && betGame.Color != Convert.ToInt32(ColorGame.Red))
                {
                    return(false);
                }
                if (betGame.Amount > 10000)
                {
                    return(false);
                }

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }