예제 #1
0
        /// <summary>
        ///  当投注额大于单场赛事限制投注额时,进行二分法投注
        /// </summary>
        /// <param name="gamerSite">博彩网</param>
        /// <param name="message">下注消息</param>
        /// <param name="currentBet">当前下注对象</param>
        private void TryBetAgain(WebSiteAbstractClass gamerSite, string message, AgentToClientBet currentBet)
        {
            if (message.Contains(IBC_STAKE_DESC) ||
                message.Contains(SBO_STAKE_DESC) ||
                message.Contains(IBC_BETCREDIT_DESC) ||
                message.Contains(SBO_BETCREDIT_DESC) ||
                currentBet.get_SourceAgentMemberBet().BetFailCount > ConstUtil.BET_FAIL_COUNT)
            {
                PlayerBetLog log = setBetLogMessage(message);
                DataServiceAdapter.SavePlayerBetLog(log);
                currentBet.set_IsRemoved(true);
            }
            else if (message.Contains(IBC_PERLIMIT) || message.Contains(SBO_PERLIMIT))
            {
                int betAmount = currentBet.get_TargetAmount();
                String[] arrays = message.Split(SPLIT);
                // 当单场赛事投注达到限制投注额时,将赌注降低为原来的一半进行下注
                if (arrays.Length == 2)
                {
                    betAmount = Conversions.ToInteger(arrays[1]) / 2;
                }
                currentBet.set_TargetAmount(betAmount);
                currentBet.set_BetAmountValue(MARK_VALUE);

                if (!gamerSite.get_IsGettingFullOdds())
                {
                    gamerSite.GetOddsFromServer();
                }
                List<MatchNew> newMatchNews = gamerSite.get_MatchListFull();
                MatchNew oldMatchNew = currentBet.get_TargetClientMatch();
                foreach (var newMatchNew in newMatchNews)
                {
                    // 取最新的赛事数据
                    if (oldMatchNew.get_FT_ID() == newMatchNew.get_FT_ID())
                    {
                        currentBet.set_TargetClientMatch(newMatchNew);
                        break;
                    }
                }
            }
            gamerSite.get_BetQueueList().UpdateBetMatchInfo(currentBet);
        }
예제 #2
0
        private void setBetAmount(AgentToClientBet bet)
        {
            // 玩家赌注
            int newBetAmount = decimal.ToInt32(playerConvert.Member.get_BetCredit());
            // 该场比赛玩家首次下注
            int gamerBetAmount = System.Convert.ToInt32(playerConvert.Player.PerMatchTarget) - bet.get_BettedAmount();
            if (newBetAmount > gamerBetAmount)
            {
                newBetAmount = gamerBetAmount;
            }

            bet.set_TargetAmount(newBetAmount);
        }