コード例 #1
0
        private ProcessorConfigInfoDTO ProcessBindData()
        {
            eBetStakeType betStakeType = eBetStakeType.Unknow;

            if (rdoMax.Checked)
            {
                betStakeType = eBetStakeType.Max;
            }
            if (rdoSbobet.Checked)
            {
                betStakeType = eBetStakeType.Sbo;
            }
            if (rdoIbet.Checked)
            {
                betStakeType = eBetStakeType.Ibet;
            }

            return(new ProcessorConfigInfoDTO()
            {
                BetStakeType = betStakeType,
                BetStake = Convert.ToInt16(txtBetStake.Text.Trim()),
                TimeOffStakeOdds = (int)numericTimeOffStakeOdds.Value,
                CompareValue = Convert.ToDouble(cboCompareValue.Text),
                MaxCountBet = (int)numericMaxCountBet.Value,
                RebetSbo = (int)numericRebetSbo.Value,
                AccountFirst = IbetBindData(),
                AccountSecond = SbobetBindData()
                                //IPAddress = txtIpAddress.Text.Trim(),
                                //HostName = txtDomain.Text.Trim(),
                                //IbetAccount = IbetBindData(),
                                //SbobetAccount = SbobetBindData(),
                                //IsMaxStake = rdoMax.Checked,
                                //Todo...
            });
        }
コード例 #2
0
        private ProcessorConfigInfoDTO ProcessBindData()
        {
            eBetStakeType betStakeType = eBetStakeType.Unknow;

            if (rdoMax.Checked)
            {
                betStakeType = eBetStakeType.Max;
            }
            if (rdoSbobet.Checked)
            {
                betStakeType = eBetStakeType.Sbo;
            }
            if (rdoIbet.Checked)
            {
                betStakeType = eBetStakeType.Ibet;
            }

            return(new ProcessorConfigInfoDTO()
            {
                //TokenGUI = Guid.NewGuid(),
                Code = this.Code,
                Market = cboMarket.SelectedItem.ToString(),
                AccountFirst = IbetBindData(),
                AccountSecond = SbobetBindData(),
                BetStakeType = betStakeType,
                //BetStake = Convert.ToInt16(txtBetStake.Text.Trim()),
                BetStake = txtBetStake.Text.Trim(),
                TimeOffStakeOdds = (int)numericTimeOffStakeOdds.Value,
                CompareValue = Convert.ToDouble(cboCompareValue.Text),
                MaxCountBet = (int)numericMaxCountBet.Value,
                RebetSbo = (int)numericRebetSbo.Value,
                MinOddDefBet = Convert.ToSingle(cboMinOddDef.Text),
                MinTimeToBet = (int)numMinTimeToBet.Value,
                RebetIbet = ckReBetIbet.Checked,
                WaitingTimeRebetIbet = (int)numTimeWaitToRebetIbet.Value
            });
        }
コード例 #3
0
        private bool CaculateStake(eBetStakeType betStakeType, string ibetMatchId, int ibetMin, int ibetMax,
                                   string sboMatchId, int sboMin, int sboMax,
                                   out int ibetStake, out int sboStake)
        {
            bool isSuccess = false;

            switch (betStakeType)
            {
            case eBetStakeType.Ibet:
                ibetStake = BetStake;
                sboStake  = (int)Math.Round((double)((ibetStake * SboRateExchange) / IbetRateExchange), 0);
                if (ibetStake >= ibetMin && ibetStake <= ibetMax &&
                    sboStake >= sboMin && sboStake <= sboMax &&
                    ibetStake != 0 && sboStake != 0)
                {
                    isSuccess = true;
                }
                break;

            case eBetStakeType.Sbo:
                sboStake  = BetStake;
                ibetStake = (int)Math.Round((double)((sboStake * IbetRateExchange) / SboRateExchange), 0);
                if (ibetStake >= ibetMin && ibetStake <= ibetMax && sboStake >= sboMin && sboStake <= sboMax &&
                    ibetStake != 0 && sboStake != 0)
                {
                    isSuccess = true;
                }
                break;

            case eBetStakeType.Max:
                ibetStake = ibetMax;
                sboStake  = (int)Math.Round((double)((ibetStake * SboRateExchange) / IbetRateExchange), 0);
                if (sboStake <= sboMax && ibetStake != 0 && sboStake != 0)
                {
                    isSuccess = true;
                    break;
                }

                sboStake  = sboMax;
                ibetStake = (int)Math.Round((double)((sboStake * IbetRateExchange) / SboRateExchange), 0);
                if (ibetStake <= ibetMax && ibetStake != 0 && sboStake != 0)
                {
                    isSuccess = true;
                    //break;
                }
                break;

            default:
                throw new Exception("Not support eBetStakeType");
            }

            if (isSuccess)
            {
                var isIbetMax = IsMaxStake(ibetMatchId, IbetBetPool, IbetMaxStakeMatch, true, ibetStake);
                var isSboMax  = IsMaxStake(sboMatchId, SboBetPool, SboMaxStakeMatch, true, sboStake);
                if ((isSboMax || isIbetMax) &&
                    ibetStake > IbetEngine.AvailabeCredit && sboStake > SboEngine.AvailabeCredit)
                {
                    return(false);
                }
            }

            return(isSuccess);
        }
コード例 #4
0
        private bool CaculateStake(eBetStakeType betStakeType, string ibetMatchId, int ibetMin, int ibetMax,
                                   string sboMatchId, int sboMin, Task <int> taskMaxBet,
                                   out int ibetStake, out int sboStake)
        {
            bool isSuccess = false;
            int  isnMax    = taskMaxBet.Result;

            if (isnMax == 0)
            {
                ibetStake = 0;
                sboStake  = 0;
                return(false);
            }
            Random r = new Random();

            switch (betStakeType)
            {
            case eBetStakeType.Ibet:
                ibetStake = BetStake[r.Next(BetStake.Count)];
                sboStake  = (int)Math.Round((double)((ibetStake * IbetRateExchange) / SboRateExchange), 0);
                if (ibetStake >= ibetMin && ibetStake <= ibetMax &&
                    sboStake >= sboMin && sboStake <= isnMax &&
                    ibetStake != 0 && sboStake != 0)
                {
                    isSuccess = true;
                    break;
                }
                goto case eBetStakeType.Max;

            case eBetStakeType.Sbo:
                sboStake  = BetStake[r.Next(BetStake.Count)];
                ibetStake = (int)Math.Round((double)((sboStake * SboRateExchange) / IbetRateExchange), 0);
                if (ibetStake >= ibetMin && ibetStake <= ibetMax && sboStake >= sboMin && sboStake <= isnMax &&
                    ibetStake != 0 && sboStake != 0)
                {
                    isSuccess = true;
                    break;
                }
                goto case eBetStakeType.Max;

            case eBetStakeType.Max:
                ibetStake = ibetMax;
                sboStake  = (int)Math.Round((double)((ibetStake * IbetRateExchange) / SboRateExchange), 0);
                if (sboStake <= isnMax && ibetStake != 0 && sboStake != 0)
                {
                    isSuccess = true;
                    break;
                }

                sboStake  = isnMax;
                ibetStake = (int)Math.Round((double)((sboStake * SboRateExchange) / IbetRateExchange), 0);
                if (ibetStake <= ibetMax && ibetStake != 0 && sboStake != 0)
                {
                    isSuccess = true;
                }
                break;

            default:
                throw new Exception("Not support eBetStakeType");
            }

            if (isSuccess)
            {
                var isIbetMax = IsMaxStake(ibetMatchId, PiBetPool, IbetMaxStakeMatch, ibetStake);
                var isSboMax  = IsMaxStake(sboMatchId, IsnBetPool, SboMaxStakeMatch, sboStake);
                if (isSboMax || isIbetMax ||
                    ibetStake > PiEngine.AvailabeCredit || sboStake > IsnEngine.AvailabeCredit)
                {
                    return(false);
                }
            }

            return(isSuccess);
        }