예제 #1
0
        public void Payout(FinishedMatch match)
        {
            List <Bet> betList = new List <Bet>();

            betList = betrep.GetBetsByMatch(match);

            foreach (Bet bet in betList)
            {
                if (bet.Prediction == match.Result)
                {
                    userservice = new UserService();

                    User user = new User
                    {
                        UserID  = bet.UserID,
                        Balance = userservice.GetBalance(bet.UserID)
                    };

                    if (bet.Prediction == MatchResult.HomeTeam)
                    {
                        bet.Earned = bet.Amount * match.MultiplierHome;
                    }

                    else if (bet.Prediction == MatchResult.AwayTeam)
                    {
                        bet.Earned = bet.Amount * match.MultiplierAway;
                    }

                    else
                    {
                        bet.Earned = bet.Amount * match.MultiplierDraw;
                    }

                    bet.Result = BetResult.Won;

                    betrep.Update(bet);
                    userservice.AddFunds(user, bet.Earned);
                }
                else
                {
                    bet.Result = BetResult.Lost;
                    bet.Earned = 0;

                    betrep.Update(bet);
                }
            }
        }