//添加用户投注订单纪录 public ActionResult InsertUserbetting(UserBet userBet) { userBet.CreateDate = DateTime.Now; bool flag = betUserBLL.InsertUserRecord(userBet); return(Content(flag.ToString())); }
private static void SetTeamValuesForPlayoffGames(TodaysGamesSpecification todaysGamesSpecification, UserBet resultUserBet, List <Team> teams) { var playoffBet = resultUserBet?.PlayoffBets.FirstOrDefault(x => x.GameId == todaysGamesSpecification.Id); if (playoffBet == null) { SetValuesDefaultValuesForTeams(todaysGamesSpecification); } else { if (playoffBet.HomeTeam != null) { todaysGamesSpecification.HomeTeam = teams.FirstOrDefault(x => x.Id == playoffBet.HomeTeam); } else { SetDefaultValueForHomeTeam(todaysGamesSpecification); } if (playoffBet.AwayTeam != null) { todaysGamesSpecification.AwayTeam = teams.FirstOrDefault(x => x.Id == playoffBet.AwayTeam); } else { SetDefaultValueForAwayTeam(todaysGamesSpecification); } } }
public TheBetEntity SaveUserBet(List <GameEntity> gameList, int userId) { using (var context = new theBetDBEntities()) { var returnEntity = new TheBetEntity() { ErrorMsg = "", Exception = null, gameList = null }; try { foreach (var game in gameList) { var userBet = new UserBet() { GameId = game.GameId, UserId = userId, UserTeam1Goals = game.UserTeam1Goals, UserTeam2Goals = game.UserTeam2Goals }; context.UserBet.Add(userBet); } context.SaveChanges(); return(returnEntity); } catch (Exception ex) { returnEntity.Exception = ex.InnerException.StackTrace; returnEntity.ErrorMsg = ex.Message; return(returnEntity); } } }
public ActionResult AnswerWrong() { int uid = (int)Session["currentUser"]; UserBet ub = db.UserBet.Find(uid); return(View()); }
public Task UpdateBet(UserBet bet) => ConnectAsync(_connectionString, async conn => { using (var command = new MySqlCommand( @"UPDATE user_bet SET userId = @userId, bet = @bet, amount = @amount, wonAmount = @wonAmount, winningNumber = @winningNumber, won = @won, dateCreated = @dateCreated, ipAddress = @ipAddress, processed = @processed WHERE spinId = @spinId", conn)) { command.Parameters.AddWithValue("@userId", bet.UserId); command.Parameters.AddWithValue("@bet", bet.Bet); command.Parameters.AddWithValue("@amount", bet.Amount); command.Parameters.AddWithValue("@wonAmount", bet.WonAmount); command.Parameters.AddWithValue("@winningNumber", bet.WinningNumber); command.Parameters.AddWithValue("@won", bet.Won); command.Parameters.AddWithValue("@ipAddress", bet.IpAddress); command.Parameters.AddWithValue("@dateCreated", bet.DateCreated); command.Parameters.AddWithValue("@processed", bet.Processed); command.Parameters.AddWithValue("@spinId", bet.SpinId.ToString()); await command.ExecuteNonQueryAsync(); } });
public JsonResult getBet() { int uid = (int)Session["currentUser"]; UserBet ub = db.UserBet.Find(uid); var result = Json(new { BetAmt = ub.BetAmt }, JsonRequestBehavior.AllowGet); return(result); }
public static UserGameHistoryDto Create(UserBet bet) => new UserGameHistoryDto { SpinId = bet.SpinId, BetAmount = bet.Amount, WonAmount = bet.WonAmount, Won = bet.Won, DateCreated = bet.DateCreated };
public static void SetValuesFromExistingBets(List <GameViewModel> games, UserBet userBet) { foreach (var game in games) { if (userBet.Bets != null) { SetValuesFromBetIfExists(userBet.Bets, game); } } }
private PlayerViewModel GetSelectedTopScorer(UserBet userBet) { if (userBet.TopScorerTeam == null) { return(null); } var team = _teamRepository.GetTeamById(userBet.TopScorerTeam); return(new PlayerViewModel { Name = userBet.TopScorerName, Team = team }); }
public ActionResult AnswerCorrect() { int uid = (int)Session["currentUser"]; UserBet ub = db.UserBet.Find(uid); int cq = (int)Session["currentQuestion"]; UserQuestions uq = (from q in db.UserQuestions where q.QuestionId == cq && q.UserId == uid select q).FirstOrDefault(); ub.BetAmt += 2 * uq.betAmount; db.SaveChanges(); return(View()); }
public static void AddBet(UserBet bet, string userName) { using (DataModel db = new DataModel()) { User user = db.Users.FirstOrDefault(o => o.LoginName == userName); if (user != null) { user.UserBet = new UserBet() { Finalist1 = bet.Finalist1, Finalist2 = bet.Finalist2, Semifinalist1 = bet.Semifinalist1, Semifinalist2 = bet.Semifinalist2, Semifinalist3 = bet.Semifinalist3, Semifinalist4 = bet.Semifinalist4, QuarterFinalist1 = bet.QuarterFinalist1, QuarterFinalist2 = bet.QuarterFinalist2, QuarterFinalist3 = bet.QuarterFinalist3, QuarterFinalist4 = bet.QuarterFinalist4, QuarterFinalist5 = bet.QuarterFinalist5, QuarterFinalist6 = bet.QuarterFinalist6, QuarterFinalist7 = bet.QuarterFinalist7, QuarterFinalist8 = bet.QuarterFinalist8, Qualified1 = bet.Qualified1, Qualified2 = bet.Qualified2, Qualified3 = bet.Qualified3, Qualified4 = bet.Qualified4, Qualified5 = bet.Qualified5, Qualified6 = bet.Qualified6, Qualified7 = bet.Qualified7, Qualified8 = bet.Qualified8, Qualified9 = bet.Qualified9, Qualified10 = bet.Qualified10, Qualified11 = bet.Qualified11, Qualified12 = bet.Qualified12, Qualified13 = bet.Qualified13, Qualified14 = bet.Qualified14, Qualified15 = bet.Qualified15, Qualified16 = bet.Qualified16, TotalGoals = bet.TotalGoals, TopScorer = bet.TopScorer, Matches = bet.Matches } } ; db.Users.AddOrUpdate(user); db.SaveChanges(); } }
private static void SetResultsIfAvailable(UserBet resultUserBet, TodaysGamesSpecification todaysGamesSpecification) { if ((GameType)todaysGamesSpecification.GameType == GameType.GroupGame) { var resultBet = resultUserBet?.Bets?.FirstOrDefault(x => x.GameId == todaysGamesSpecification.Id); SetGoalsFromResultBet(todaysGamesSpecification, resultBet); } else { var resultBet = resultUserBet?.PlayoffBets?.FirstOrDefault(x => x.GameId == todaysGamesSpecification.Id); SetGoalsFromResultBet(todaysGamesSpecification, resultBet); } }
private TodaysGamesSpecification MapTodaysGamesAndBets(Game todaysGame, IEnumerable <UserBet> userBets, List <Team> teams, UserBet resultUserBet) { var todaysGamesSpecification = MapGameToTodaysGameSpecification(todaysGame); SetTeamsForTodaysGameSpecification(todaysGame, todaysGamesSpecification, resultUserBet, teams); if (userBets == null || resultUserBet == null) { return(todaysGamesSpecification); } SetResultsIfAvailable(resultUserBet, todaysGamesSpecification); SetValuesFromUserBets(todaysGame, userBets, todaysGamesSpecification, resultUserBet); todaysGamesSpecification.Bets = OrderByScoreOrNumberOfUsers(todaysGamesSpecification); return(todaysGamesSpecification); }
private void SetValuesFromBetForGroupGame(Game todaysGame, TodaysGamesSpecification todaysGamesSpecification, UserBet resultUserBet, UserBet userBet, List <ScoreBasis> scoreBasis) { var userNameForUserBet = _userRepository.GetUserByUserId(userBet.UserId).UserName; var currentGamesBet = userBet.Bets?.FirstOrDefault(x => x.GameId == todaysGame.Id); var currentGamesResultBet = resultUserBet?.Bets?.FirstOrDefault(x => x.GameId == todaysGame.Id); if (currentGamesBet == null) { return; } var userBetViewModel = CreateUserBetViewModel(todaysGame, scoreBasis, currentGamesResultBet, currentGamesBet, userNameForUserBet); AddUserBetToListForGroup(todaysGamesSpecification, currentGamesBet, userBetViewModel); }
public List <string> GetResultList(UserBet currentUserbet) { FootballApiClient client = new FootballApiClient(); List <string> currentUserMatchBet = new List <string>(); if (currentUserbet != null) { foreach (var match in currentUserbet.Matches) { currentUserMatchBet.Add(match.HomeTeam + match.AwayTeam); } } return(client.GetResults(currentUserMatchBet)); }
public int Calculate(UserBet referenceUserBet, UserBet usersBet, List <ScoreBasis> scoreBases) { var referenceTopScorerName = referenceUserBet.TopScorerName; var referenceTopScorerTeam = referenceUserBet.TopScorerTeam; var scoreBasisTopScorer = scoreBases.FirstOrDefault(x => x.GameType == (int)GameType.TopScorer); if (scoreBasisTopScorer == null) { return(0); } if (string.IsNullOrEmpty(referenceTopScorerName)) { return(0); } return(referenceTopScorerName == usersBet.TopScorerName && referenceTopScorerTeam == usersBet.TopScorerTeam ? scoreBasisTopScorer.Points : 0); }
private List <TodaysGamesSpecification> CreateTodaysGamesSpecification( IEnumerable <Game> todaysGames, Results result, List <UserBet> userBets, List <Team> teams) { var resultUserBet = new UserBet(); if (EventHelpers.EventHasStarted()) { if (result != null) { resultUserBet = _userBetRepository.GetUserBetById(result.UserBetId); } return(todaysGames .Select(todaysGame => MapTodaysGamesAndBets(todaysGame, userBets, teams, resultUserBet)).ToList()); } return(todaysGames.Select(todaysGame => MapOnlyTodaysGames(todaysGame, teams)).ToList()); }
private List <PlayoffBet> ExtractBetsFromPlayOffGameResults( IEnumerable <PlayoffBetViewModel> playoffGamesResultViewModel, UserBet userBet) { var playoffBets = new List <PlayoffBet>(); foreach (var playoffBetViewModel in playoffGamesResultViewModel) { // if (PlayoffBetHasMissingTeam(playoffBetViewModel)) // { // continue; // } var playoffBet = BetMappers.MapPlayoffGamesResultViewModelToPlayoffBets(playoffBetViewModel, userBet.Id); playoffBets.Add(playoffBet); } return(playoffBets); }
private void SetValuesForPlayoffGame(Game todaysGame, TodaysGamesSpecification todaysGamesSpecification, UserBet userBet) { var userNameForUserBet = _userRepository.GetUserByUserId(userBet.UserId).UserName; int nextRoundGameType; if ((GameType)todaysGame.GameType == GameType.SemiFinals) { nextRoundGameType = todaysGame.GameType + 2; } else { nextRoundGameType = todaysGame.GameType + 1; } var betsForNextRound = userBet.PlayoffBets.Where(x => x.GameType == (nextRoundGameType)).ToList(); if (!betsForNextRound.Any() || (GameType)todaysGame.GameType == GameType.BronzeFinals) { return; } foreach (var playoffBet in betsForNextRound) { if (todaysGamesSpecification.HomeTeam != null) { if (TeamMatchesUsersNextRoundBet(todaysGamesSpecification.HomeTeam.Id, playoffBet)) { SetValuesFromBetForPlayoffGame(todaysGamesSpecification, todaysGamesSpecification.HomeTeam, userNameForUserBet); } } if (todaysGamesSpecification.AwayTeam != null) { if (TeamMatchesUsersNextRoundBet(todaysGamesSpecification.AwayTeam.Id, playoffBet)) { SetValuesFromBetForPlayoffGame(todaysGamesSpecification, todaysGamesSpecification.AwayTeam, userNameForUserBet); } } } }
public UserBet CreateUserBet(IEnumerable <GameResultViewModel> gameResultViewModels, List <PlayoffBetViewModel> playoffGamesResultViewModel, PlayerViewModel topScorerBet, int sportsEventId, string userId, bool isResultBet = false) { var userBet = new UserBet { SportsEventId = sportsEventId, UserId = userId, IsResultBet = isResultBet, Bets = new List <Bet>(), CreatedAt = DateTime.Now, TopScorerName = topScorerBet?.Name, TopScorerTeam = topScorerBet?.Team?.Id, PlayoffBets = new List <PlayoffBet>(), }; userBet.Bets = ExtractBetsFromGameResults(gameResultViewModels, userBet); userBet.PlayoffBets = ExtractBetsFromPlayOffGameResults(playoffGamesResultViewModel, userBet); return(userBet); }
public ActionResult StartGame() { MembershipUser user = Membership.GetUser(User.Identity.Name); currentUser = (int)user.ProviderUserKey; Session["currentUser"] = currentUser; UserBet betamt = new UserBet { UserId = currentUser, BetAmt = 100 }; betamt.user = db.UserProfiles.Find(currentUser); UserBet existing = db.UserBet.Find(currentUser); if (existing == null) { db.UserBet.Add(betamt); } else { existing.BetAmt = 100; } //RESET GAME List <UserQuestions> uq = db.UserQuestions.ToList(); foreach (UserQuestions u in uq) { db.UserQuestions.Remove(u); } List <UserCategories> uc = db.UserCategories.ToList(); foreach (UserCategories u in uc) { db.UserCategories.Remove(u); } db.SaveChanges(); return(View()); }
private static async Task AddBet(UserBet bet, MySqlConnection connection, MySqlTransaction transaction) { using (var command = new MySqlCommand( @"INSERT INTO user_bet (userId, spinId, bet, amount, wonAmount, winningNumber, won, dateCreated, ipAddress) VALUES (@userId, @spinId, @bet, @amount, @wonAmount, @winningNumber, @won, @dateCreated, @ipAddress)", connection, transaction)) { command.Parameters.AddWithValue("@userId", bet.UserId); command.Parameters.AddWithValue("@spinId", bet.SpinId.ToString()); command.Parameters.AddWithValue("@bet", bet.Bet); command.Parameters.AddWithValue("@amount", bet.Amount); command.Parameters.AddWithValue("@wonAmount", bet.WonAmount); command.Parameters.AddWithValue("@winningNumber", bet.WinningNumber); command.Parameters.AddWithValue("@won", bet.Won); command.Parameters.AddWithValue("@ipAddress", bet.IpAddress); command.Parameters.AddWithValue("@dateCreated", bet.DateCreated); await command.ExecuteNonQueryAsync(); } }
public int SaveOrUpdateUserBet(UserBet userBet) { var userBetId = 0; var original = _repository.FindBy(x => x.UserId == userBet.UserId && x.SportsEventId == userBet.SportsEventId).ToList(); if (original.Any()) { var originalUserBet = original.First(); userBetId = originalUserBet.Id; originalUserBet.CreatedAt = userBet.CreatedAt; originalUserBet.TopScorerTeam = userBet.TopScorerTeam; originalUserBet.TopScorerName = userBet.TopScorerName; _playoffBetRepository.SaveOrUpdatePlayoffBets(userBet.PlayoffBets.ToList(), userBetId); _betRepository.SaveOrUpdateBets(userBet.Bets.ToList(), userBetId); } else { _repository.Add(userBet); } _repository.Save(); return(userBetId != 0 ? userBetId : userBet.Id); }
private void SetTeamsForTodaysGameSpecification(Game todaysGame, TodaysGamesSpecification todaysGamesSpecification, UserBet resultUserBet, List <Team> teams) { if (IsGroupGame(todaysGamesSpecification)) { SetTeamValuesForGroupGames(todaysGame, todaysGamesSpecification, teams); } else { SetTeamValuesForPlayoffGames(todaysGamesSpecification, resultUserBet, teams); } }
private static bool PlayoffBetsNotValid(UserBet userBet) { return(userBet.PlayoffBets .Where(playoffBet => playoffBet.HomeGoals != null && playoffBet.AwayGoals != null) .Any(playoffBet => playoffBet.HomeGoals == playoffBet.AwayGoals)); }
private void SetValuesFromUserBets(Game todaysGame, IEnumerable <UserBet> userBets, TodaysGamesSpecification todaysGamesSpecification, UserBet resultUserBet) { var scoreBasis = _scoreBasisRepository.GetScoreBasisesBySportsEventId(1); foreach (var userBet in userBets) { if (IsGroupGame(todaysGamesSpecification)) { SetValuesFromBetForGroupGame(todaysGame, todaysGamesSpecification, resultUserBet, userBet, scoreBasis); } if ((GameType)todaysGamesSpecification.GameType != GameType.GroupGame) { SetValuesForPlayoffGame(todaysGame, todaysGamesSpecification, userBet); } } }
public ActionResult PlaceBet(MyPageViewModel placedBet, string username) { if (!ModelState.IsValid) { ModelState.AddModelError("", "The password provided is incorrect."); return(new RedirectResult(Url.Action("Index") + "#bet")); } UserBet userBet = new UserBet(); foreach (var bet in placedBet.Bet.Matches) { Models.DB.Match match = new Models.DB.Match() { HomeTeam = bet.HomeTeam, AwayTeam = bet.AwayTeam, HomeScore = bet.HomeScore, AwayScore = bet.AwayScore }; userBet.Matches.Add(match); userBet.Finalist1 = placedBet.Bet.Finalist1; userBet.Finalist2 = placedBet.Bet.Finalist2; userBet.Semifinalist1 = placedBet.Bet.Semifinalist1; userBet.Semifinalist2 = placedBet.Bet.Semifinalist2; userBet.Semifinalist3 = placedBet.Bet.Semifinalist3; userBet.Semifinalist4 = placedBet.Bet.Semifinalist4; userBet.QuarterFinalist1 = placedBet.Bet.QuarterFinalist1; userBet.QuarterFinalist2 = placedBet.Bet.QuarterFinalist2; userBet.QuarterFinalist3 = placedBet.Bet.QuarterFinalist3; userBet.QuarterFinalist4 = placedBet.Bet.QuarterFinalist4; userBet.QuarterFinalist5 = placedBet.Bet.QuarterFinalist5; userBet.QuarterFinalist6 = placedBet.Bet.QuarterFinalist6; userBet.QuarterFinalist7 = placedBet.Bet.QuarterFinalist7; userBet.QuarterFinalist8 = placedBet.Bet.QuarterFinalist8; userBet.Qualified1 = placedBet.Bet.Qualified1; userBet.Qualified2 = placedBet.Bet.Qualified2; userBet.Qualified3 = placedBet.Bet.Qualified3; userBet.Qualified4 = placedBet.Bet.Qualified4; userBet.Qualified5 = placedBet.Bet.Qualified5; userBet.Qualified6 = placedBet.Bet.Qualified6; userBet.Qualified7 = placedBet.Bet.Qualified7; userBet.Qualified8 = placedBet.Bet.Qualified8; userBet.Qualified9 = placedBet.Bet.Qualified9; userBet.Qualified10 = placedBet.Bet.Qualified10; userBet.Qualified11 = placedBet.Bet.Qualified11; userBet.Qualified12 = placedBet.Bet.Qualified12; userBet.Qualified13 = placedBet.Bet.Qualified13; userBet.Qualified14 = placedBet.Bet.Qualified14; userBet.Qualified15 = placedBet.Bet.Qualified15; userBet.Qualified16 = placedBet.Bet.Qualified16; userBet.TopScorer = placedBet.Bet.TopScorer; userBet.TotalGoals = placedBet.Bet.TotalGoals; } if (!this.IsValidUserBet(placedBet.Bet)) { if (base.TempData["Fail"] == null) { base.TempData.Add("Fail", "N\x00e5got blev tokigt, f\x00f6rs\x00f6k igen. T\x00e4nk p\x00e5 att ange olika lag i åttondelsfinal, kvartsfinal, semifinal och final."); } return(new RedirectResult(base.Url.Action("Index") + "#bet")); } UserManager.AddBet(userBet, username); if (base.TempData["Thanks"] == null) { base.TempData.Add("Thanks", "Tack f\x00f6r spelet"); } return(new RedirectResult(base.Url.Action("Index"))); }
public static void TryToBet(Money maxProfit, Money minBet, decimal formChance, Money formBetAmount, int houseEdge, Money formProfit, bool low) { if (formBetAmount < minBet) { throw new MsgException(U4200.BETTOOLOW + " " + minBet); } else if (formChance <= 0) { throw new MsgException(U4200.CHANCEBELOWZERO); } else if (formChance > AppSettings.DiceGame.MaxChance) { throw new MsgException(U4200.CHANCETOOHIGH); } Money houseProfit = formBetAmount * houseEdge / formChance; if (formProfit > maxProfit) { throw new MsgException(U4200.PROFITTOOHIGH + " " + maxProfit); } else if (formProfit <= Money.Zero) { throw new MsgException(U4200.PROFITBELOWZERO); } else if (houseProfit < new Money(0.00000001)) { throw new MsgException(U4200.HOUSEPROFITTOOLOW); } Member User = Member.Current; DiceGameHash CurrentDiceGameHash = DiceGameHash.Get(User); UserBet Bet = new UserBet(); Bet.UserId = User.Id; if (User.PurchaseBalance < formBetAmount) { throw new MsgException(L1.NOTENOUGHFUNDS); } string serverSeed = CurrentDiceGameHash.ServerSeedCurrent; string clientSeed = CurrentDiceGameHash.ClientSeedCurrent; string salt = DiceGameHashLogic.GenerateSalt(clientSeed, Bet.UserId); string hashToCompute = DiceGameHashLogic.ComputeHash(salt, serverSeed); decimal diceRoll = RollTheDice(hashToCompute); bool hasWon = HasWon(formChance, low, diceRoll); string query; Bet.BetSize = formBetAmount; Bet.BetDate = DateTime.Now; Bet.Chance = formChance; Bet.Low = low; if (hasWon) { Bet.Profit = formProfit; User.AddToMainBalance(Bet.Profit, "Dice bet win", BalanceLogType.Other); query = SiteInvestmentManager.GetUpdateAmountQuery(formProfit.Negatify()); //To do: should investors lose money based on betsize or profit? //AppSettings.DiceGame.HouseProfit += (houseProfit); } else { Bet.Profit = Bet.BetSize.Negatify(); User.SubtractFromPurchaseBalance(Bet.BetSize, "Dice bet lose", BalanceLogType.Other); query = SiteInvestmentManager.GetUpdateAmountQuery(formBetAmount); //AppSettings.DiceGame.HouseProfit += ((0.01m * formBetAmount)); } Bet.Roll = diceRoll; Bet.Save(); string clearTableQuery = " DELETE FROM SiteInvestments WHERE Amount = 0;"; TableHelper.ExecuteRawCommandNonQuery(query + clearTableQuery); AppSettings.DiceGame.Save(); User.SaveBalances(); }
private void MapPlayoffBetsToGameViewModels(IEnumerable <GameViewModel> playoffGames, UserBet userBet) { foreach (var game in playoffGames) { if (userBet.PlayoffBets != null) { SetExistingValuesFromPlayoffBet(game, userBet.PlayoffBets); } } }
private List <Bet> ExtractBetsFromGameResults(IEnumerable <GameResultViewModel> gameResultViewModels, UserBet userBet) { return(gameResultViewModels.Select(gameResultViewModel => BetMappers.MapGameResultViewModelToBet(gameResultViewModel, userBet.Id)).ToList()); }