public BetResultData StartBetting(MultipleBetData data)
        {
            if (data == null)
            {
                return(null);
            }

            PlaceAutomatedBetsResponse rezBet = DiceWebAPI.PlaceAutomatedBets(data.Session, data.AutoSettings);
            var rezult = new BetResultData {
                Session = data.Session
            };

            if (rezBet.Success)
            {
                if (rezBet.TotalPayOut == 0) //запуск одиночных ставок
                {
                    decimal baseBet;
                    if (rezBet.BetCount > 1)
                    {
                        baseBet = rezBet.PayIns[rezBet.BetCount - 1] <= rezBet.PayIns[rezBet.BetCount - 2] ?
                                  2 * rezBet.PayIns[rezBet.BetCount - 1] : 2 * rezBet.PayIns[rezBet.BetCount - 2];
                    }
                    else
                    {
                        baseBet = 2 * rezBet.PayIns[rezBet.BetCount - 1];
                    }
                    //сформировать исходные данные для одиночных ставок
                    SingleBetData singlData = data.GetSingleData();
                    singlData.PayIn = baseBet;
                    BetResultData singleResult = singleBetting.StartBetting(singlData);

                    rezult.BetCount = rezBet.BetCount + singleResult.BetCount;
                    rezult.Percent  = singleResult.Percent;
                    rezult.Profit   = rezBet.TotalPayOut + singleResult.Profit;
                    rezult.Balance  = data.Session[data.Currency].Balance;
                }
                else //получен профит
                {
                    rezult.BetCount = rezBet.BetCount;
                    rezult.Percent  = 0;
                    rezult.Profit   = rezBet.TotalPayOut + rezBet.TotalPayIn;
                    rezult.Balance  = data.Session[data.Currency].Balance;
                }
            }
            else
            {
                if (rezBet.InsufficientFunds)
                {
                    OnFinishMoney?.Invoke(this, data);
                }
                else
                {
                    Thread.Sleep(30000);
                }
            }

            return(rezult);
        }
Beispiel #2
0
        public async void StartBet(MultiBetData bet)
        {
            PlaceAutomatedBetsResponse result = await DiceWebAPI.PlaceAutomatedBetsAsync(bet.Session, bet.MultiBetSettings);

            if (result.Success)
            {
                betResult.BetCount++;
                if (result.TotalPayOut == 0)
                {
                    decimal baseBet;
                    if (result.BetCount > 1)
                    {
                        baseBet = result.PayIns[result.BetCount - 1] <= result.PayIns[result.BetCount - 2] ?
                                  2 * result.PayIns[result.BetCount - 1] : 2 * result.PayIns[result.BetCount - 2];
                    }
                    else
                    {
                        baseBet = 2 * result.PayIns[result.BetCount - 1];
                    }

                    SingleBetCycle singlBet = new SingleBetCycle();
                    SingleBetData  sBet     = bet.GetSingleData(baseBet);
                    singlBet.OnNoMoney += SinglBet_OnNoMoney;
                    BetResult singlResult = null;
                    singlBet.StartBet(sBet);
                    betResult.BetCount = result.BetCount + singlResult.BetCount;
                    betResult.Profit   = result.TotalPayOut + result.TotalPayIn + singlResult.Profit;
                }
                else
                {
                    betResult.BetCount = result.BetCount;
                    betResult.Profit   = result.TotalPayOut + result.TotalPayIn;
                    OnBetCompleted?.Invoke(betResult);
                }
            }
            else
            {
                if (result.InsufficientFunds)
                {
                    OnNoMoney?.Invoke(bet.Session.AccountId, bet.Currency);
                    Thread.Sleep(20000);
                }
            }
        }