Exemple #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);
        }
Exemple #2
0
        public override void GetTicketAndBet(AgentToClientBet bet1, EnumCollection.eBetFollowMethod method1)
        {
            try
            {
                if (base._isAutoBetting)
                {
                    if (!base._isBetting)
                    {
                        if (!this.IsWaitingBetCoolDown())
                        {
                            int num = 0;
                            if (!base._isPerMatchLimitEnabled | (base._isPerMatchLimitEnabled & base._objPerMatchLimitList.IsCanBet(bet1.get_SourceAgentMemberBet(), ref num)))
                            {
                                bool flag = false;
                                MatchBetNew new2 = new MatchBetNew();
                                new2 = bet1.get_SourceAgentMemberBet().Clone();
                                EnumCollection.eBetTarget target = bet1.get_SourceAgentMemberBet().get_BetTarget();
                                switch (new2.get_BetTarget())
                                {
                                    case EnumCollection.eBetTarget.FT_Home:
                                    case EnumCollection.eBetTarget.FT_Over:
                                    case EnumCollection.eBetTarget.Half_Home:
                                    case EnumCollection.eBetTarget.Half_Under:
                                        flag = true;
                                        break;

                                    default:
                                        flag = false;
                                        break;
                                }
                                if (method1 == EnumCollection.eBetFollowMethod.Opposite)
                                {
                                    target = SpiderFunction.ConvertBetFollowMethodToOpposite(target);
                                }
                                this.GetTicketAndBetFromAgent(bet1.get_SourceAgentMemberBet(), bet1.get_TargetClientMatch(), target, bet1.get_TargetAmount() - bet1.get_BettedAmount(), bet1.CloneObject());
                            }
                            else
                            {
                                bet1.get_SourceAgentMemberBet().set_Description("Exceed Per Match Limit!");
                                base._objBetListFailed.Add(bet1.get_SourceAgentMemberBet());
                                this.get__objBetQueueMonitor().UpdateMatchStatus(bet1.get_SourceAgentMemberBet().get_ID(), "Exceed Per Match Limit!");
                                this.WriteProgramLogger("Exceed Per Match Limit!");
                            }
                        }
                        else
                        {
                            this.WriteProgramLogger("Please wait, program is waiting bet cool down...");
                        }
                    }
                    else
                    {
                        this.WriteProgramLogger("Please wait, program is betting other match...");
                    }
                }
                else
                {
                    bet1.get_SourceAgentMemberBet().set_Description("Auto Bet OFF.");
                    base._objBetListFailed.Add(bet1.get_SourceAgentMemberBet());
                    this.get__objBetQueueMonitor().UpdateMatchStatus(bet1.get_SourceAgentMemberBet().get_ID(), "Auto Bet OFF");
                    this.WriteProgramLogger("Auto Bet OFF.");
                }
            }
            catch (Exception exception1)
            {
                ProjectData.SetProjectError(exception1);
                Exception exception = exception1;
                base._objErrorLogger.write(base._strName + ": EXCEPTION IN GetTicketAndBet: " + exception.Message);
                this.WriteProgramLogger(base._strName + ": EXCEPTION IN GetTicketAndBet: " + exception.Message);
                ProjectData.ClearProjectError();
            }
        }
 private void AddBetQueue(AgentToClientBet bet1)
 {
     if (this._synchronisingObject != null)
     {
         if (this._synchronisingObject.InvokeRequired)
         {
             this._synchronisingObject.BeginInvoke(new ProcessEventBetQueueDelegate(this.AddBetQueue), new object[] { bet1 });
         }
         else
         {
             MatchBetNew new2 = bet1.get_SourceAgentMemberBet();
             ListViewItem item = new ListViewItem();
             item.UseItemStyleForSubItems = false;
             item.SubItems.Add(new2.get_MemberName());
             item.SubItems.Add(new2.get_Company());
             item.SubItems.Add(new2.get_ID());
             item.SubItems.Add(new2.get_BetCoverage().ToString());
             item.SubItems.Add(new2.get_GameType().ToString());
             if (new2.get_GameType() == EnumCollection.eGameType.Running)
             {
                 item.SubItems.Add(Conversions.ToString(new2.get_HomeScore()) + "-" + Conversions.ToString(new2.get_AwayScore()));
             }
             else
             {
                 item.SubItems.Add("-");
             }
             item.SubItems.Add(new2.get_HomeName());
             item.SubItems[item.SubItems.Count - 1].ForeColor = new2.get_HomeColor();
             item.SubItems.Add(new2.get_AwayName());
             item.SubItems[item.SubItems.Count - 1].ForeColor = new2.get_AwayColor();
             item.SubItems.Add(new2.get_SelectedMatch());
             item.SubItems[item.SubItems.Count - 1].ForeColor = Color.Green;
             if (this.get_IsShowHDPDoubleStyle())
             {
                 item.SubItems.Add(new2.get_HDPDouble().ToString("N2"));
             }
             else
             {
                 item.SubItems.Add(new2.get_HDP());
             }
             item.SubItems.Add(new2.get_OddsString());
             if (new2.get_Odds() >= 0.0)
             {
                 item.SubItems[item.SubItems.Count - 1].ForeColor = Color.Blue;
             }
             else
             {
                 item.SubItems[item.SubItems.Count - 1].ForeColor = Color.Red;
             }
             item.SubItems.Add(new2.get_BetAmount());
             if (bet1.get_TargetAmount() > -1)
             {
                 item.SubItems.Add(Conversions.ToString(bet1.get_TargetAmount()));
             }
             else
             {
                 item.SubItems.Add("Max Bet");
             }
             item.SubItems.Add(new2.get_CreateDate().ToLongTimeString());
             item.SubItems.Add(new2.get_BetFollowMethod().ToString());
             if (new2.get_BetFollowMethod() == EnumCollection.eBetFollowMethod.Opposite)
             {
                 item.SubItems[item.SubItems.Count - 1].ForeColor = Color.Red;
             }
             else
             {
                 item.SubItems[item.SubItems.Count - 1].ForeColor = Color.Blue;
             }
             item.SubItems.Add(bet1.get_Status());
             if (bet1.get_Status().Contains("Stop"))
             {
                 item.SubItems[0x10].ForeColor = Color.Red;
             }
             else if (bet1.get_Status().Contains("OK"))
             {
                 item.SubItems[0x10].ForeColor = Color.Blue;
             }
             else if (bet1.get_Status().Contains("Betting"))
             {
                 item.SubItems[0x10].ForeColor = Color.Green;
             }
             else if (bet1.get_Status().Contains("Finding"))
             {
                 item.SubItems[0x10].ForeColor = Color.DarkGray;
             }
             else if (bet1.get_Status().Contains("Found"))
             {
                 item.SubItems[0x10].ForeColor = Color.LightGreen;
             }
             if ((this.get_lstBetQueue().Items.Count % 2) == 1)
             {
                 int num3 = item.SubItems.Count - 1;
                 for (int i = 0; i <= num3; i++)
                 {
                     item.SubItems[i].BackColor = Color.FromArgb(240, 0xf8, 0xff);
                 }
             }
             this.get_lstBetQueue().Items.Add(item);
             if (this.get_lstBetQueue().Items.Count > 0)
             {
                 this.get_lstBetQueue().Items[this.get_lstBetQueue().Items.Count - 1].Selected = true;
                 this.get_lstBetQueue().Items[this.get_lstBetQueue().Items.Count - 1].EnsureVisible();
             }
             this.get_lblTotalCount().Text = "Total Count: " + this.get_lstBetQueue().Items.Count.ToString();
         }
     }
 }