public ScheduledMatch GetScheduledMatch(long MatchID) { ScheduledMatch Match = new ScheduledMatch(); SqlConnection sql = new SqlConnection(ConnectionString); using (sql) { SqlCommand command = new SqlCommand("SELECT TeamA, TeamB FROM Matches WHERE ID LIKE @MatchID", sql); command.Parameters.AddWithValue("@MatchID", MatchID); sql.Open(); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { Match.TeamA = reader.GetString(0); Match.TeamB = reader.GetString(1); } } return(Match); }
public async Task Bet(long MatchID, string Score, decimal Money) { //await Context.Message.DeleteAsync(); // SECRET long ID = (long)Context.User.Id; if (!sql.UserExists(ID)) { await ReplyAsync(MentionUtils.MentionUser(Context.User.Id) + " you have to register before betting"); } else { if (!(Score.Length == 3 && char.IsDigit(Score[0]) && char.IsDigit(Score[2]) && Score[1] == '-')) { await ReplyAsync(MentionUtils.MentionUser(Context.User.Id) + " invalid score format"); } else { // make bet object bet bet = new bet(ID, MatchID, Score, Money); if (!sql.HasEnoughMoney(ID, Money)) { await ReplyAsync(MentionUtils.MentionUser(Context.User.Id) + " you don't have enough money to make that bet"); } else { if (Money <= 0) { await ReplyAsync(MentionUtils.MentionUser(Context.User.Id) + " invalid number"); } else { if (!sql.MatchExists(MatchID)) { await ReplyAsync(MentionUtils.MentionUser(Context.User.Id) + " invalid match"); } else { if (sql.IsMatchLive(MatchID)) { await ReplyAsync(MentionUtils.MentionUser(Context.User.Id) + " you can't bet during a live match baka desu senpai"); } else { if (sql.BetExists(ID, MatchID)) { await ReplyAsync(MentionUtils.MentionUser(Context.User.Id) + " you already bet on that match"); } else { // FINALS if (MatchID == 28) { bet.Money += 125; sql.MakeBet(bet); sql.SubstractMoney(ID, Money); sql.AddMoneyBet(ID, Money); await ReplyAsync(MentionUtils.MentionUser(Context.User.Id) + " FINALS MADNESS! You succesfully placed your bet and we added 125★ to it for free!"); } else { sql.MakeBet(bet); sql.SubstractMoney(ID, Money); sql.AddMoneyBet(ID, Money); ScheduledMatch sm = sql.GetScheduledMatch(MatchID); //await ReplyAsync(string.Format("{0} bet placed on **{1}** vs **{2}**", MentionUtils.MentionUser(Context.User.Id), sm.TeamA, sm.TeamB)); // Secret await ReplyAsync(string.Format("{0} bet {3}★ on **{1}** vs **{2}**", MentionUtils.MentionUser(Context.User.Id), sm.TeamA, sm.TeamB, Money));// Public } } } } } } } } }
public async Task MatchOdds(long matchid) { if (sql.MatchExists(matchid)) { ScheduledMatch match = sql.GetScheduledMatch(matchid); List <long> bettors = sql.GetMatchBettors(matchid); decimal potA = 0; decimal potT = 0; decimal potB = 0; foreach (long user in bettors) { sql.GetBetMoney(user, matchid); char Outcome = sql.GetBetOutcome(user, matchid); if (Outcome == 'A') { potA = potA + sql.GetBetMoney(user, matchid); } else if (Outcome == 'B') { potB = potB + sql.GetBetMoney(user, matchid); } else { potT = potT + sql.GetBetMoney(user, matchid); } } decimal totalpot = potA + potB + potT; if (totalpot == 0) { await ReplyAsync(string.Format(".\n" + " **{0}** vs **{1}** \n\n" + // PUBLIC ODDS ":regional_indicator_a: 0★ \n" + ":regional_indicator_t: 0★ \n" + ":regional_indicator_b: 0★ \n" + "\n:moneybag: {2}★", match.TeamA, match.TeamB, totalpot)); } else { int oddsA = (int)(Math.Round(potA / totalpot, 2) * 100); int oddsT = (int)(Math.Round(potT / totalpot, 2) * 100); int oddsB = (int)(Math.Round(potB / totalpot, 2) * 100); await ReplyAsync(string.Format(".\n" + " **{0}** vs **{1}** \n\n" + // PUBLIC ODDS ":regional_indicator_a: {2}★ ({3}%) \n" + ":regional_indicator_t: {4}★ ({5}%) \n" + ":regional_indicator_b: {6}★ ({7}%) \n" + "\n:moneybag: {8}★", match.TeamA, match.TeamB, potA, oddsA, potT, oddsT, potB, oddsB, totalpot)); } } else { await ReplyAsync("Invalid match"); } }