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); }
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); } } }