Esempio n. 1
0
        public IActionResult Bet(BetRoulette model)
        {
            _log.LogInformation("Validating Model...");
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            try
            {
                string msg = "";
                model.IdClient = Convert.ToInt32(Request.Headers["IdClient"]);
                if (model.validate())
                {
                    _log.LogInformation("Model is Ok...");
                    _db.CreateBet(model);
                    msg = "Se ha creado la apuesta correctamente";
                }
                else
                {
                    msg = "Se tiene que hacer una apuesta válida";
                    _log.LogInformation("Model is Invalid...");
                }
                _log.LogInformation("The bet has been created successfully !");

                return(Ok(msg));
            }
            catch (Exception ex)
            {
                _log.LogWarning("Error: " + ex.Message);
                return(BadRequest(ex.Message));
            }
        }
Esempio n. 2
0
        public async Task <bool> BetRoulette(BetRoulette betRoulette)
        {
            try
            {
                using IDbConnection connection = new SqlConnection(SqlHelper.ConnectionString);
                if (connection.State == ConnectionState.Closed)
                {
                    connection.Open();
                }
                var result = await connection.ExecuteScalarAsync <string>("sp_RouletteBet",
                                                                          param : SetParameters(betRoulette),
                                                                          commandType : CommandType.StoredProcedure);

                if (result.Equals("OK", StringComparison.OrdinalIgnoreCase))
                {
                    return(true);
                }

                return(false);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);

                return(false);
            }
        }
Esempio n. 3
0
 public void CreateBet(BetRoulette bet)
 {
     using (SqlConnection connection = new SqlConnection(connectionString))
     {
         string query = "insert into Bets(Number,Color,Amount,IdClient,IdRoulette,DateCreate)" +
                        "values(@Number,@Color,@Amount,@IdClient,@IdRoulette,@DateCreate)" +
                        "select SCOPE_IDENTITY()";
         SqlCommand command = new SqlCommand(query, connection);
         command.Parameters.AddWithValue("@Number", (object)bet.Number ?? DBNull.Value);
         command.Parameters.AddWithValue("@Color", (object)bet.Color ?? DBNull.Value);
         command.Parameters.AddWithValue("@Amount", bet.Amount);
         command.Parameters.AddWithValue("@IdClient", bet.IdClient);
         command.Parameters.AddWithValue("@IdRoulette", bet.IdRoulette);
         command.Parameters.AddWithValue("@DateCreate", DateTime.UtcNow);
         try
         {
             connection.Open();
             command.ExecuteNonQuery();
             connection.Close();
         }
         catch (Exception ex)
         {
             throw new Exception("Ha ocurrido un error en la BD: " + ex.Message);
         }
     }
 }
Esempio n. 4
0
        /// <summary>
        /// Validate amount of dollars
        /// </summary>
        /// <param name="betRoulette">Bet</param>
        /// <returns>Result validation. True = Correct</returns>
        private bool ValidateDollars(BetRoulette betRoulette)
        {
            if (betRoulette.Dollars > 0 && betRoulette.Dollars <= 10000)
            {
                return(true);
            }

            return(false);
        }
Esempio n. 5
0
        /// <summary>
        /// Validate value number
        /// </summary>
        /// <param name="betRoulette">Bet</param>
        /// <returns>Result validation. True = Correct</returns>
        private bool ValidateNumber(BetRoulette betRoulette)
        {
            if (betRoulette.Number != null && betRoulette.Number >= 0 && betRoulette.Number <= 36)
            {
                return(true);
            }

            return(false);
        }
Esempio n. 6
0
        public async Task <Roulette> ConfigureRoulette(BetModel model, User user)
        {
            Roulette roulette = await _rouletteRepository.GetRouletteById(model.RouletteId);

            RouletteHelper.CheckBetRoulette(roulette, model.RouletteId);
            BetRoulette bet = new BetRoulette(model, user);

            roulette.AddBet(bet);
            return(roulette);
        }
Esempio n. 7
0
        /// <summary>
        /// Validate value color
        /// </summary>
        /// <param name="betRoulette">Bet</param>
        /// <returns>Result validation. True = Correct</returns>
        private bool ValidateColor(BetRoulette betRoulette)
        {
            if (betRoulette.Color != null &&
                (betRoulette.Color.Equals("ROJO", StringComparison.OrdinalIgnoreCase) ||
                 betRoulette.Color.Equals("NEGRO", StringComparison.OrdinalIgnoreCase)))
            {
                return(true);
            }

            return(false);
        }
Esempio n. 8
0
        private DynamicParameters SetParameters(BetRoulette betRoulette)
        {
            DynamicParameters parameters = new DynamicParameters();

            parameters.Add("@IdRoulette", betRoulette.IdRoulette);
            parameters.Add("@Dollars", betRoulette.Dollars);
            parameters.Add("@Number", betRoulette.Number);
            parameters.Add("@Color", betRoulette.Color);

            return(parameters);
        }
Esempio n. 9
0
        private BetRoulette SetBet(BetDTO betRoulette)
        {
            BetRoulette resultRoulette = new BetRoulette();

            resultRoulette.BetMoney        = betRoulette.BetMoney;
            resultRoulette.UserId          = betRoulette.UserId;
            resultRoulette.BetFor          = betRoulette.BetFor;
            resultRoulette.IsGame          = true;
            resultRoulette.StartRouletteId = (int)UserGameInformation.StartRouletteId;

            return(resultRoulette);
        }
 public BetRoulette UpdateBetRoulette(BetRoulette betRoulette)
 {
     if (betRoulette != null)
     {
         contextBetRoulette.ReplaceOne(r => r.Id == betRoulette.Id, betRoulette);
         return(betRoulette);
     }
     else
     {
         return(betRoulette);
     }
 }
Esempio n. 11
0
 public IActionResult BetRoulette([FromHeader(Name = "userId")] string userId, [FromHeader(Name = "userName")] string userName, [FromRoute(Name = "idRoulette")] string idRoulette, [FromBody] BetRequest request)
 {
     try
     {
         Roulette    roulette    = this.rouletteServices.GetRoulette(idRoulette);
         BetRoulette betRoulette = this.betRouletteServices.BetRoulette(roulette, userId, userName, request.position, request.money);
         return(Ok(betRoulette));
     }
     catch (Exception ex)
     {
         return(BadRequest(ex.Message));
     }
 }
Esempio n. 12
0
        public async Task <IActionResult> Bet(BetRoulette betRoulette)
        {
            try
            {
                var resultBet = await _rouletteManager.BetInRoulette(betRoulette);

                if (!resultBet.Succesfull)
                {
                    return(StatusCode(403, resultBet));
                }

                return(StatusCode(201, resultBet));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, ex));
            }
        }
Esempio n. 13
0
        /// <summary>
        /// Bet in the roulette
        /// </summary>
        /// <param name="betRoulette">Bet</param>
        /// <returns></returns>
        public async Task <ResultBet> BetInRoulette(BetRoulette betRoulette)
        {
            if (ValidateNumber(betRoulette) ||
                ValidateColor(betRoulette) &&
                ValidateDollars(betRoulette))
            {
                var resultBetBd = await _rouletteService.BetRoulette(betRoulette);

                if (resultBetBd)
                {
                    return(new ResultBet {
                        Succesfull = true, Message = MessageResource.OkBet
                    });
                }
            }

            return(new ResultBet {
                Succesfull = false, Message = MessageResource.ErrorDataBet
            });
        }
Esempio n. 14
0
 public List <BetRoulette> ListBets(int id)
 {
     using (SqlConnection connection = new SqlConnection(connectionString))
     {
         string     query   = "select * from Bets where IdRoulette=@id";
         SqlCommand command = new SqlCommand(query, connection);
         command.Parameters.AddWithValue("@id", id);
         List <BetRoulette> Bets = new List <BetRoulette>();
         try
         {
             connection.Open();
             SqlDataReader reader = command.ExecuteReader();
             while (reader.Read())
             {
                 var Bet = new BetRoulette();
                 Bet.IdBet = reader.GetInt32(0);
                 if (!reader.IsDBNull(1))
                 {
                     Bet.Number = reader.GetInt32(1);
                 }
                 if (!reader.IsDBNull(2))
                 {
                     Bet.Color = reader.GetString(2);
                 }
                 Bet.Amount     = reader.GetDouble(3);
                 Bet.IdClient   = reader.GetInt32(4);
                 Bet.DateCreate = reader.GetDateTime(5);
                 Bet.IdRoulette = id;
                 Bets.Add(Bet);
             }
             reader.Close();
             connection.Close();
             return(Bets);
         }
         catch (Exception ex)
         {
             throw new Exception("Ha ocurrido un error en la BD: " + ex.Message);
         }
     }
 }
Esempio n. 15
0
        public async Task <int> CreateBetAsync(BetRoulette betRoulette)
        {
            int idNewRoulette = 0;

            using (SqlConnection connection = new SqlConnection(BaseContext.GetParameterConnection()))
            {
                var sql = string.Format(Querys.QueryCreateBet, betRoulette.UserId, betRoulette.BetMoney,
                                        betRoulette.BetFor, betRoulette.IsGame,
                                        DateTime.UtcNow.ToString(Constant.FormatDate), betRoulette.StartRouletteId);

                using (SqlCommand command = new SqlCommand(sql, connection))
                {
                    command.CommandType = CommandType.Text;

                    await connection.OpenAsync();

                    idNewRoulette = (Int32)await command.ExecuteScalarAsync();

                    await connection.CloseAsync();
                }
                return(idNewRoulette);
            }
        }
 public BetRoulette CreateBetRoulette(BetRoulette betRoulette)
 {
     contextBetRoulette.InsertOne(betRoulette);
     return(betRoulette);
 }
 public BetRouletteServices(IDbClient dbClient)
 {
     betRoulette        = new BetRoulette();
     contextBetRoulette = dbClient.GetBetRouletteCollection();
 }
 public BetRoulette ClosingRoulette(BetRoulette betRoulette)
 {
     contextBetRoulette.InsertOne(betRoulette);
     return(betRoulette);
 }