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();
                }
            }
        }
Esempio n. 2
0
        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();
            }
        }
Esempio n. 3
0
        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();
            }
        }
Esempio n. 4
0
        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);
        }
Esempio n. 8
0
        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();
        }
Esempio n. 9
0
        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();
        }
Esempio n. 10
0
        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();
            }
        }
Esempio n. 11
0
        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);
        }
Esempio n. 12
0
        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();
        }
Esempio n. 13
0
        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);
        }
Esempio n. 15
0
        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();
        }
Esempio n. 16
0
        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();
        }
Esempio n. 17
0
        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;
        }
Esempio n. 18
0
        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();
        }
Esempio n. 19
0
        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();
        }
Esempio n. 20
0
        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();
            }
        }
Esempio n. 21
0
        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);
        }
Esempio n. 23
0
        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);
        }
Esempio n. 24
0
        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;
        }