/** * @brief Returns all races from DB * @param string date_time The date_time to apply to the query * @return RaceEvent[] An array with all stadiums, races and races details (RaceEvent array) at the date provided **/ public static Bet[] GetBetsByUserId(User user) { List<Bet> betsList = new List<Bet>(); OracleConnection connection = new OracleConnection(ConfigurationBLL.GetConnectionStringByRole(user.Role_Id)); OracleDataReader sqlDataReader = null; try { //Open the connection connection.Open(); //Setup the command to run string strCommand = GET_BETS_BY_USER_ID_SQL; strCommand = strCommand.Replace("@user_id", user.User_Id.ToString()); Tools.printDebug(null, strCommand, null); OracleCommand command = new OracleCommand(strCommand); command.Connection = connection; //Runs the command sqlDataReader = command.ExecuteReader(); while (sqlDataReader.Read()) { long bet_id = Convert.ToInt64(sqlDataReader[BETS_BET_ID].ToString()); long user_id = Convert.ToInt64(sqlDataReader[BETS_USER_ID].ToString()); long bet_type_id = Convert.ToInt64(sqlDataReader[BETS_BET_TYPE_ID].ToString()); long race_id = Convert.ToInt64(sqlDataReader[BETS_RACE_ID].ToString()); long grey_id = Convert.ToInt64(sqlDataReader[BETS_GREY_ID].ToString()); string date_time = sqlDataReader[BETS_DATE_TIME].ToString(); Decimal bet_value = Tools.StringToDecimal(sqlDataReader[BETS_BET_VALUE].ToString()); int bet_result = (!sqlDataReader[BETS_BET_RESULT].ToString().Equals("")? Convert.ToInt32(sqlDataReader[BETS_BET_RESULT].ToString()) : -1); Decimal return_value = Tools.StringToDecimal(sqlDataReader[BETS_RETURN_VALUE].ToString()); Bet bet = new Bet( bet_id, user_id, bet_type_id, race_id, grey_id, date_time, bet_value, bet_result, return_value ); betsList.Add(bet); } } catch (InvalidOperationException exception) { Tools.printDebug(new System.Diagnostics.StackFrame(), "", exception); throw new InvalidOperationException(Resources.CANNOT_ACCESS_DATABASE_EXCEPTION_MESSAGE, exception); } catch (SqlException exception) { Tools.printDebug(new System.Diagnostics.StackFrame(), "", exception); throw new InvalidOperationException(Resources.CANNOT_ACCESS_DATABASE_EXCEPTION_MESSAGE, exception); } catch (FormatException exception) { Tools.printDebug(new System.Diagnostics.StackFrame(), "", exception); throw new FormatException(Resources.CANNOT_ACCESS_DATABASE_EXCEPTION_MESSAGE, exception); } catch (OverflowException exception) { Tools.printDebug(new System.Diagnostics.StackFrame(), "", exception); throw new OverflowException(Resources.CANNOT_ACCESS_DATABASE_EXCEPTION_MESSAGE, exception); } finally { //Closes the datareader and connection to the database if (sqlDataReader != null) { sqlDataReader.Close(); } if (connection != null) { connection.Close(); } } //Returns the list of fetched bets in the form of an array return betsList.ToArray(); }
/** * @brief Try to insert a bet into the database * @return the bet_id if sucessful, -1 otherwise */ public static long InsertBet(User user, Bet bet) { return BetsDAL.InsertBet(user, bet); }
/** * @brief Try to insert a bet into the database * @return the bet_id if sucessful, -1 otherwise */ public static long InsertBet(User user, Bet bet) { long result = -1; try { using (var connection = new OracleConnection(ConfigurationBLL.GetConnectionStringByRole(user.Role_Id))) { using (var Command = new OracleCommand()) { Command.Connection = connection; Command.CommandText = "INSERT_BET"; Command.CommandType = CommandType.StoredProcedure; using (var param = new OracleParameter()) { param.OracleDbType = OracleDbType.Long; param.Direction = ParameterDirection.Input; param.ParameterName = "userId"; param.Value = bet.User_Id; Command.Parameters.Add(param); } using (var param = new OracleParameter()) { param.OracleDbType = OracleDbType.Long; param.Direction = ParameterDirection.Input; param.ParameterName = "betTypeId"; param.Value = bet.Bet_Type_Id; Command.Parameters.Add(param); } using (var param = new OracleParameter()) { param.OracleDbType = OracleDbType.Long; param.Direction = ParameterDirection.Input; param.ParameterName = "raceDetailId"; param.Value = bet.Race_Id; Command.Parameters.Add(param); } using (var param = new OracleParameter()) { param.OracleDbType = OracleDbType.Long; param.Direction = ParameterDirection.Input; param.ParameterName = "raceGreyId"; param.Value = bet.Grey_Id; Command.Parameters.Add(param); } using (var param = new OracleParameter()) { param.OracleDbType = OracleDbType.Decimal; param.Direction = ParameterDirection.Input; param.ParameterName = "betValue"; param.Value = bet.Bet_Value; Command.Parameters.Add(param); } using (var param = new OracleParameter()) { param.OracleDbType = OracleDbType.Int32; param.Direction = ParameterDirection.Output; param.ParameterName = "out_betId"; Command.Parameters.Add(param); } connection.Open(); int res = Command.ExecuteNonQuery(); if (Command.Parameters["out_betId"].DbType == System.Data.DbType.Int32) { result = Int32.Parse((Command.Parameters["out_betId"].Value).ToString()); Tools.printDebug("Insert Bet Result: " + result); } else { Tools.printDebug("Failed to Insert the Bet"); } } } } catch (InvalidOperationException exception) { Tools.printDebug(new System.Diagnostics.StackFrame(), "", exception); throw new InvalidOperationException(Resources.CANNOT_ACCESS_DATABASE_EXCEPTION_MESSAGE, exception); } catch (SqlException exception) { Tools.printDebug(new System.Diagnostics.StackFrame(), "", exception); throw new InvalidOperationException(Resources.CANNOT_ACCESS_DATABASE_EXCEPTION_MESSAGE, exception); } catch (FormatException exception) { Tools.printDebug(new System.Diagnostics.StackFrame(), "", exception); throw new FormatException(Resources.CANNOT_ACCESS_DATABASE_EXCEPTION_MESSAGE, exception); } catch (OverflowException exception) { Tools.printDebug(new System.Diagnostics.StackFrame(), "", exception); throw new OverflowException(Resources.CANNOT_ACCESS_DATABASE_EXCEPTION_MESSAGE, exception); } catch (Exception exception) { Tools.printDebug(new System.Diagnostics.StackFrame(), "", exception); } return result; }
public void InsertBet(string user, string token, int bet_type_id, int race_id, int grey_id, int bet_value) { if (!AuthenticateUser(user, token)) { String result = "{error:\"not authenticated\", items:[]}"; SendResponse(result); return; } User session_user = UserBLL.GetUserByEmail(user); Bet bet = new Bet(session_user.User_Id, bet_type_id, race_id, grey_id, bet_value); bet.Date_Time = (DateTime.Now.ToString("yyyy\\/MM\\/dd HH:mm:ss")); long bet_id = BetsBLL.InsertBet(session_user, bet); Tools.printDebug("Bet Id: " + bet_id); if( bet_id > 0 ) { String result = "{result: 'success', " + "user_id: '" + session_user.User_Id + "'," + "bet_id: '" + bet_id + "'}"; SendResponse(result); } else { String result = "{error:\"failed to insert the bet\", items:[]}"; SendResponse(result); } }