public void CreateTransactions(string user) { var ctx = new DAL.BettingRoomEntities(); var account = ctx.AccountBalances.Where(a => a.UserId == user).FirstOrDefault(); for (int i = 1; i < 30; i++) { var transaction = new DAL.Transaction { AccountId = account.Id, Amount = GetAmount(), TransactionType = GetTransactionType(), TransactionTime = new DateTime(2015, 04, i) }; if (transaction.TransactionType == "Withdraw" || transaction.TransactionType == "Bet") { if (account.AmountInEuro >= transaction.Amount) { ctx.Transactions.Add(transaction); account.AmountInEuro = account.AmountInEuro - transaction.Amount; ctx.SaveChanges(); } } else if (transaction.TransactionType == "Winning" || transaction.TransactionType == "Deposit") { ctx.Transactions.Add(transaction); account.AmountInEuro = account.AmountInEuro + transaction.Amount; ctx.SaveChanges(); } } }
public List<Models.BetOneModel> GetBets(string userId, string searchQuery) { var ctx = new DAL.BettingRoomEntities(); if (searchQuery == "Bet") { return ctx.BetOneGames.Where(b => b.UserId == userId) .Select(b => new Models.BetOneModel { _1X2 = b.C1X2, BetAmount = b.BetAmount, HomeTeam = b.Game.Team.Name, GuestTeam = b.Game.Team1.Name, Odds = b.Odds, WonOrLost = b.WonOrLose, }).ToList(); } else { return ctx.BetOneGames.Where(b => b.UserId == userId && b.WonOrLose == searchQuery).Select(b => new Models.BetOneModel { _1X2 = b.C1X2, BetAmount = b.BetAmount, HomeTeam = b.Game.Team.Name, GuestTeam = b.Game.Team1.Name, Odds = b.Odds, WonOrLost = b.WonOrLose, }).ToList(); } }
public void GenerateHomeTeamScore(List<DAL.Game> games) { var ctx = new DAL.BettingRoomEntities(); foreach (var item in games) { var game = ctx.Games.Where(g => g.Id == item.Id).FirstOrDefault(); if (game.Team.SportName == "SOCCER") { int scoreSoccer = rnd.Next(0, 4); game.ResultHomeTeam = scoreSoccer; } else if (game.Team.SportName == "ICE HOCKEY") { int scoreHockey = rnd.Next(0, 10); game.ResultHomeTeam = scoreHockey; } else if (game.Team.SportName == "FLOORBALL") { int scoreFloorball = rnd.Next(0, 10); game.ResultHomeTeam = scoreFloorball; } ctx.SaveChanges(); } }
public void CheckWinners(int gameId) { var ctx = new DAL.BettingRoomEntities(); var game = ctx.Games.Where(g => g.Id == gameId).FirstOrDefault(); CheckWinningBets(gameId, ctx, game); CheckLosingBets(gameId, ctx, game); }
public ActionResult CreateWithdraw() { var ctx = new DAL.BettingRoomEntities(); var userId = User.Identity.GetUserId(); var account = ctx.AccountBalances.Where(a => a.UserId == userId).Select(a => new Models.AccountModel { Id = a.Id, AmountInEuro = a.AmountInEuro, }).FirstOrDefault(); return PartialView("_CreateWithdraw", account); }
public void CreateBet(int gameId, string userId) { var ctx = new DAL.BettingRoomEntities(); DAL.AccountBalance account; if (ctx.AccountBalances.Where(a => a.UserId == userId).FirstOrDefault() == null) { ctx.AccountBalances.Add(new DAL.AccountBalance { UserId = userId, AmountInEuro = 100, }); ctx.SaveChanges(); account = ctx.AccountBalances.Where(a => a.UserId == userId).FirstOrDefault(); } else { account = ctx.AccountBalances.Where(a => a.UserId == userId).FirstOrDefault(); } var result = Get1X2(); var game = ctx.Games.Find(gameId); var newBet = new DAL.BetOneGame { GameId = gameId, UserId = userId, BetAmount = GetBetAmount(), C1X2 = result, Odds = GetOdds(gameId, result), WonOrLose = "NOT FINISH", }; if (newBet.BetAmount <= account.AmountInEuro) { account.AmountInEuro = account.AmountInEuro - newBet.BetAmount; ctx.BetOneGames.Add(newBet); ctx.Transactions.Add(new DAL.Transaction() { AccountId = account.Id, Amount = newBet.BetAmount, TransactionType = "Bet", TransactionTime = game.GameTime.AddHours(2), }); ctx.SaveChanges(); } }
public ActionResult CreateBet(int id, string result) { var ctx = new DAL.BettingRoomEntities(); var tempOdds = double.Parse(CheckOdds(id, result).ToString()); var user = User.Identity.GetUserId(); var bet = new Models.BetOneModel() { GameId = id, _1X2 = result, Odds = tempOdds, UserId = user, BetAmount = 1, }; return PartialView("_FinishBet", bet); }
public List<Models.GameModel> GetGamesInSixDaysInLeague(int id) { var ctx = new DAL.BettingRoomEntities(); var lastDate = DateTime.Now.AddDays(6); return ctx.Games .Where(g => g.Team.LeagueId == id) .Where(g => g.GameTime >= DateTime.Now && g.GameTime <= lastDate) .Select(g => new Models.GameModel { Id = g.Id, HomeTeam = g.Team.Name, GuestTeam = g.Team1.Name, GameTime = g.GameTime, Odds1 = g.Odds1, OddsX = g.OddsX, Odds2 = g.Odds2, }).ToList(); }
public List<Models.GameModel> GetPlayedGames(int id) { var ctx = new DAL.BettingRoomEntities(); return ctx.Games .Where(g => g.Team.LeagueId == id) .Where(g => g.GameTime <= DateTime.Now) .Select(g => new Models.GameModel { Id = g.Id, HomeTeam = g.Team.Name, GuestTeam = g.Team1.Name, GameTime = g.GameTime, Odds1 = g.Odds1, OddsX = g.OddsX, Odds2 = g.Odds2, ResultHomeTeam = g.ResultHomeTeam, ResultGuestTeam = g.ResultGuestTeam, Result1X2 = g.Result1X2, }).ToList(); }
public DAL.AccountBalance CheckAccount(string user) { var ctx = new DAL.BettingRoomEntities(); if (ctx.AccountBalances.Where(a => a.UserId == user).FirstOrDefault() == null) { var account = new DAL.AccountBalance { AmountInEuro = 0, UserId = user, }; account.AmountInEuro = 2000; ctx.AccountBalances.Add(account); ctx.SaveChanges(); return account; } else { return ctx.AccountBalances.Where(a => a.UserId == user).FirstOrDefault(); } }
public ActionResult DepositAttempt(Models.TransactionModel model) { var ctx = new DAL.BettingRoomEntities(); if (ModelState.IsValid) { ctx.Transactions.Add(new DAL.Transaction { Amount = model.Amount, TransactionTime = DateTime.Now, TransactionType = "Deposit", AccountId = model.AccountId, }); ctx.SaveChanges(); var userId = User.Identity.GetUserId(); var account = ctx.AccountBalances.Where(a => a.UserId == userId).FirstOrDefault(); account.AmountInEuro = account.AmountInEuro + model.Amount; ctx.SaveChanges(); return View("Index"); } return PartialView("_CreateDeposit", model); }
public void GenerateScoresWithBet(string userId) { var ctx = new DAL.BettingRoomEntities(); var games = ctx.Games.Where(g => g.GameTime <= DateTime.Now).Where(g => g.Result1X2 == null).ToList(); foreach (var game in games) { var home = double.Parse(game.Team.TeamOdds.ToString()); var guest = double.Parse(game.Team1.TeamOdds.ToString()); game.Odds1 = home * 1.1; game.OddsX = (home * 1.5 + guest * 1.5) / 2; game.Odds2 = guest; ctx.SaveChanges(); CreateBet(game.Id, userId); } cal.GenerateHomeTeamScore(games); cal.GenerateGuestTeamScore(games); cal.SetResult1X2(); }
public void SetResult1X2() { var ctx = new DAL.BettingRoomEntities(); var games = ctx.Games.Where(g => g.GameTime <= DateTime.Now).Where(g => g.Result1X2 == null).ToList(); foreach (var game in games) { var home = game.ResultHomeTeam; var guest = game.ResultGuestTeam; if (home == guest) { game.Result1X2 = "X"; } else if (home < guest) { game.Result1X2 = "2"; } else if (home > guest) { game.Result1X2 = "1"; } ctx.SaveChanges(); SetPoints(game.Id); CheckWinners(game.Id); } }
public ActionResult SaveTheBet(Models.BetOneModel model) { if (ModelState.IsValid) { var ctx = new DAL.BettingRoomEntities(); var account = ctx.AccountBalances.Where(a => a.UserId == model.UserId).FirstOrDefault(); if (account.AmountInEuro >= model.BetAmount) { account.AmountInEuro = account.AmountInEuro - model.BetAmount; ctx.SaveChanges(); var newBet = new DAL.BetOneGame { GameId = model.GameId, UserId = model.UserId, BetAmount = model.BetAmount, C1X2 = model._1X2, Odds = model.Odds, WonOrLose = "NOT FINISH", BetTime = DateTime.Now, }; if (newBet.BetAmount <= account.AmountInEuro) { account.AmountInEuro = account.AmountInEuro - newBet.BetAmount; ctx.BetOneGames.Add(newBet); ctx.Transactions.Add(new DAL.Transaction() { AccountId = account.Id, Amount = newBet.BetAmount, TransactionType = "Bet", TransactionTime = DateTime.Now, }); ctx.SaveChanges(); } return PartialView("_Success"); } return PartialView("_FinishBet", model); } return PartialView("_FinishBet", model); }
public void GenerateScores() { var ctx = new DAL.BettingRoomEntities(); var games = ctx.Games.Where(g => g.GameTime <= DateTime.Now).Where(g => g.Result1X2 == null).ToList(); GenerateHomeTeamScore(games); GenerateGuestTeamScore(games); SetResult1X2(); }
public void SetPoints(int gameId) { var ctx = new DAL.BettingRoomEntities(); var game = ctx.Games.Where(g => g.Id == gameId).FirstOrDefault(); if (game.Result1X2 == "1") { game.Team.PointsInLeague += 3; game.Team.TeamOdds *= 0.9; } else if (game.Result1X2 == "X") { game.Team.PointsInLeague += 1; game.Team1.PointsInLeague += 1; } else if (game.Result1X2 == "2") { game.Team1.PointsInLeague += 3; game.Team1.TeamOdds *= 1.1; } ctx.SaveChanges(); }
public List<Models.GameModel> GenerateOdds() { var ctx = new DAL.BettingRoomEntities(); var lastDate = DateTime.Now.AddDays(6); var fixedGames = new List<Models.GameModel>(); foreach (var game in ctx.Games.Where(g => g.GameTime >= DateTime.Now && g.GameTime <= lastDate).ToList()) { var home = double.Parse(game.Team.TeamOdds.ToString()); var guest = double.Parse(game.Team1.TeamOdds.ToString()); game.Odds1 = home * 1.1; game.OddsX = (home * 1.5 + guest * 1.5) / 2; game.Odds2 = guest; ctx.SaveChanges(); fixedGames.Add(new Models.GameModel { Odds1 = game.Odds1, Odds2 = game.Odds2, OddsX = game.OddsX, GameTime = game.GameTime, HomeTeam = game.Team.Name, GuestTeam = game.Team1.Name, }); } return fixedGames; }
public List<Models.TeamModel> GetTeamStandings(int id) { var ctx = new DAL.BettingRoomEntities(); return ctx.Teams .Where(t => t.LeagueId == id) .OrderByDescending(t => t.PointsInLeague) .Select(t => new Models.TeamModel { Id = t.Id, Name = t.Name, PointsInLeague = t.PointsInLeague, LeagueName = t.League.LeagueName, }).ToList(); }
public List<Models.TransactionModel> GetTransactions(string id) { var ctx = new DAL.BettingRoomEntities(); return ctx.Transactions.Where(t => t.AccountBalance.UserId == id).Select(t => new Models.TransactionModel { Id = t.Id, AccountId = t.AccountId, Amount = t.Amount, TransactionType = t.TransactionType, TransactionTime = t.TransactionTime, }).OrderByDescending(t => t.TransactionTime).ToList(); }
public List<Models.TransactionModel> GetTransactions(string userId, string searchQuery) { var ctx = new DAL.BettingRoomEntities(); if (searchQuery == "Transaction") { return ctx.Transactions.Where(t => t.AccountBalance.UserId == userId) .Select(t => new Models.TransactionModel { TransactionTime = t.TransactionTime, TransactionType = t.TransactionType, Amount = t.Amount, }).OrderByDescending(t => t.TransactionTime).ToList(); } else { return ctx.Transactions.Where(t => t.AccountBalance.UserId == userId && t.TransactionType == searchQuery) .Select(t => new Models.TransactionModel { TransactionTime = t.TransactionTime, TransactionType = t.TransactionType, Amount = t.Amount, }).OrderByDescending(t => t.TransactionTime).ToList(); } }
public List<Models.GameModel> GetTeamsGames(int id) { var ctx = new DAL.BettingRoomEntities(); return ctx.Games .Where(g => g.HomeTeamId == id || g.GuestTeamId == id) .Where(g => g.GameTime <= DateTime.Now) .Select(g => new Models.GameModel { Id = g.Id, HomeTeam = g.Team.Name, GuestTeam = g.Team1.Name, GameTime = g.GameTime, ResultHomeTeam = g.ResultHomeTeam, ResultGuestTeam = g.ResultGuestTeam, Result1X2 = g.Result1X2, }).ToList(); }
public async Task<ActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { var ctx = new DAL.BettingRoomEntities(); ctx.AccountBalances.Add(new DAL.AccountBalance { UserId = user.Id, AmountInEuro = 0, }); await SignInManager.SignInAsync(user, isPersistent:false, rememberBrowser:false); // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771 // Send an email with this link // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>"); var team = ctx.Teams.Where(t => t.Id == 1).FirstOrDefault(); if (team.TeamOdds == 0) { Helpers.FillAndChangeDB fill = new Helpers.FillAndChangeDB(); fill.AtFirstSignIn(user.Id); } return RedirectToAction("Index", "Home"); } AddErrors(result); } // If we got this far, something failed, redisplay form return View(model); }
public void ResetResult(string userId) { var ctx = new DAL.BettingRoomEntities(); foreach (var game in ctx.Games.Where(g => g.GameTime <= DateTime.Now).ToList()) { game.ResultGuestTeam = null; game.ResultHomeTeam = null; game.Result1X2 = null; game.Odds1 = 0.0; game.Odds2 = 0.0; game.OddsX = 0.0; ctx.SaveChanges(); } foreach (var team in ctx.Teams.ToList()) { team.PointsInLeague = 0; team.TeamOdds = 1.35; ctx.SaveChanges(); } GenerateScoresWithBet(userId); }
private double GetOdds(int gameId, string result) { var ctx = new DAL.BettingRoomEntities(); var game = ctx.Games.Where(g => g.Id == gameId).FirstOrDefault(); if (result == "1") { return game.Odds1; } else if (result == "X") { return game.OddsX; } else { return game.Odds2; } }
private object CheckOdds(int id, string result) { var ctx = new DAL.BettingRoomEntities(); var game = ctx.Games.Where(g => g.Id == id).FirstOrDefault(); if (result == "1") { return game.Odds1; } else if (result == "X") { return game.OddsX; } else if (result == "2") { return game.Odds2; } return null; }