//添加用户投注订单纪录
        public ActionResult InsertUserbetting(UserBet userBet)
        {
            userBet.CreateDate = DateTime.Now;
            bool flag = betUserBLL.InsertUserRecord(userBet);

            return(Content(flag.ToString()));
        }
Exemple #2
0
        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);
                }
            }
        }
Exemple #3
0
 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);
         }
     }
 }
Exemple #4
0
        public ActionResult AnswerWrong()
        {
            int     uid = (int)Session["currentUser"];
            UserBet ub  = db.UserBet.Find(uid);

            return(View());
        }
Exemple #5
0
        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();
            }
        });
Exemple #6
0
        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
 };
Exemple #8
0
 public static void SetValuesFromExistingBets(List <GameViewModel> games, UserBet userBet)
 {
     foreach (var game in games)
     {
         if (userBet.Bets != null)
         {
             SetValuesFromBetIfExists(userBet.Bets, game);
         }
     }
 }
Exemple #9
0
        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
            });
        }
Exemple #10
0
        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());
        }
Exemple #11
0
        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();
            }
        }
Exemple #12
0
 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);
     }
 }
Exemple #13
0
        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);
        }
Exemple #14
0
        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));
        }
Exemple #16
0
        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);
        }
Exemple #17
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());
        }
Exemple #18
0
        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);
        }
Exemple #19
0
        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);
                    }
                }
            }
        }
Exemple #20
0
        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);
        }
Exemple #21
0
        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());
        }
Exemple #22
0
        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();
            }
        }
Exemple #23
0
        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);
        }
Exemple #24
0
 private void SetTeamsForTodaysGameSpecification(Game todaysGame,
                                                 TodaysGamesSpecification todaysGamesSpecification, UserBet resultUserBet, List <Team> teams)
 {
     if (IsGroupGame(todaysGamesSpecification))
     {
         SetTeamValuesForGroupGames(todaysGame, todaysGamesSpecification, teams);
     }
     else
     {
         SetTeamValuesForPlayoffGames(todaysGamesSpecification, resultUserBet, teams);
     }
 }
Exemple #25
0
 private static bool PlayoffBetsNotValid(UserBet userBet)
 {
     return(userBet.PlayoffBets
            .Where(playoffBet => playoffBet.HomeGoals != null && playoffBet.AwayGoals != null)
            .Any(playoffBet => playoffBet.HomeGoals == playoffBet.AwayGoals));
 }
Exemple #26
0
        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);
                }
            }
        }
Exemple #27
0
        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")));
        }
Exemple #28
0
    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();
    }
Exemple #29
0
 private void MapPlayoffBetsToGameViewModels(IEnumerable <GameViewModel> playoffGames, UserBet userBet)
 {
     foreach (var game in playoffGames)
     {
         if (userBet.PlayoffBets != null)
         {
             SetExistingValuesFromPlayoffBet(game, userBet.PlayoffBets);
         }
     }
 }
Exemple #30
0
 private List <Bet> ExtractBetsFromGameResults(IEnumerable <GameResultViewModel> gameResultViewModels,
                                               UserBet userBet)
 {
     return(gameResultViewModels.Select(gameResultViewModel =>
                                        BetMappers.MapGameResultViewModelToBet(gameResultViewModel, userBet.Id)).ToList());
 }