Inheritance: MonoBehaviour
Ejemplo n.º 1
1
        public RiskProfile Calculate(Bet bet, IList<Bet> settledBets)
        {
            if (settledBets.Count == 0)
            {
                return Constants.SAFE_PROFILE;
            }

            var avergaStake = settledBets.Average(bets => bets.Stake);

            if (bet.Stake > (avergaStake * Constants.EXCEPTIONALLY_RISKY_STAKE_FACTOR))
            {
                return new RiskProfile
                {
                    Risk = Risk.HighlyRisky,
                    Reason = "Stake is exceptionally large based on betting history."
                };
            }

            if (bet.Stake > (avergaStake *  Constants.UNUSUAL_STAKE_FACTOR))
            {
                return new RiskProfile
                {
                    Risk = Risk.Unusual,
                    Reason = "Stake is unusually large based on betting history."
                };
            }

            return Constants.SAFE_PROFILE;
        }
Ejemplo n.º 2
0
        public int CalculateScore(Bet bet)
        {
            var multiplier = (bet.Game.IsScoreMultiplier) ? 2 : 1;
            var realResult = bet.Game.Result;
            var betResult = bet.Result;
            var realGoalDifference = realResult.HomeGoals - realResult.GuestGoals;
            var betGoalDifference = betResult.HomeGoals - betResult.GuestGoals;

            if (realResult.HomeGoals == betResult.HomeGoals && realResult.GuestGoals == betResult.GuestGoals)
            {
                return (int)Score.ExactResult * multiplier;
            }

            if (realGoalDifference == betGoalDifference)
            {
                return (int)Score.GoalDifference * multiplier;
            }

            if ((realGoalDifference > 0 && betGoalDifference > 0) || (realGoalDifference < 0 && betGoalDifference < 0))
            {
                return (int)Score.WinTeam * multiplier;
            }

            return (int)Score.LoosOrNotBet;
        }
Ejemplo n.º 3
0
        public ActionResult CreateBet(MyBetModel newBet)
        {
            try
            {
                // TODO: Add insert logic here

                BetsDBDataContext context = new BetsDBDataContext();

                Bet bet = new Bet();
                bet.name = newBet.Name;
                bet.description = newBet.Description;
                context.Bets.InsertOnSubmit(bet);
                context.SubmitChanges();

                if (Request.Files.Count > 0)
                {
                    List<HttpPostedFileBase> files = TempData["appl"] as List<HttpPostedFileBase>;

                    if (files != null && files.Count != 0)
                    {
                        MyBetModel.WriteFileInDB(files, bet.id);
                        TempData.Clear();
                    }
                }

                return RedirectToAction("CreateOutcome", "Outcome", new { idBet = bet.id });
            }
            catch
            {
                return View();
            }
        }
Ejemplo n.º 4
0
        public static int TallyResult(int originalBankroll, Bet bet, Result result)
        {
            originalBankroll -= bet.Amount;
            originalBankroll += result.NetAmount;

            return originalBankroll;
        }
        public RiskProfile Get(Bet bet, IList<Bet> settledBets)
        {
            var riskProfiles = _risks.Select(risk => risk.Calculate(bet, settledBets)).ToList();
            riskProfiles.Add(_customerRisk.Calculate(settledBets));

            var tst = riskProfiles.OrderByDescending(risk => risk.Risk);
            return riskProfiles.OrderByDescending(risk => risk.Risk).FirstOrDefault();
        }
Ejemplo n.º 6
0
 public void SaveBet(Bet bet)
 {
     FnHibernateHelper.InTransaction(session =>
                                         {
                                             session.Save(bet.Result);
                                             session.Save(bet);
                                         });
 }
        public BetResult(Bet bet, Number hitNumber)
        {
            this.Bet = bet;

            var slot = Slot.Slots[this.Bet.SlotType];
            this.IsWinner = slot.IsWinner(hitNumber);

            this.Delta = slot.GetWinnings(this.IsWinner, this.Bet.Amount) - this.Bet.Amount;
        }
Ejemplo n.º 8
0
        public void UpdateBet(Bet bet)
        {
            FnHibernateHelper.InTransaction(session =>
                                                {
                                                    var originalBet = session.Get<Bet>(bet.Id);
                                                    originalBet.Result.HomeGoals = bet.Result.HomeGoals;
                                                    originalBet.Result.GuestGoals = bet.Result.GuestGoals;
                                                    originalBet.Score = bet.Score;

                                                    session.Update(originalBet.Result);
                                                });
        }
        public RiskProfile Calculate(Bet bet, IList<Bet> settledBets)
        {
            if (bet.PotentialPayout > Constants.RISKY_PAYOUT_AMOUNT)
            {
                return new RiskProfile
                {
                    Risk = Risk.Risky,
                    Reason = "Potential payout is too high."
                };
            }

            return Constants.SAFE_PROFILE;
        }
Ejemplo n.º 10
0
		public Player(Inbox inbox)
		{
			_normalBet = new Bet(25.0m);

			inbox.Loop(hand =>
				{
					hand.Receive<Request<Bet>>(x =>
						{
							x.Respond(_normalBet);

							inbox.Loop(loop =>
								{
								});
						});
				});
		}
Ejemplo n.º 11
0
        public void AnalyseStress(double _ec, double _es, List<Point> _lst, Bet.bsx _typD,
						out double bF, out double bM)
        {
            double y=0;
            double _sig=0;
            double bForce = 0;
            double bMoment = 0;

            for (int i=0; i<_lst.Count; i++)
            {
                y=_lst[i].YCoord; //y координата на дискретната площ
                _sig=_bet.Stress(eps_cs(y,_ec,_es),true,_typD);
                bForce += _sig * _lst [i].XCoord/10;
                bMoment -=_sig*_lst[i].XCoord * (y - ycg)/1000;
            }
            //Console.WriteLine ("Force="+bForce.ToString("N2"));
            bF = bForce;
            bM = bMoment;
        }
Ejemplo n.º 12
0
    public void ClickToBet(BoardFaceID betID)
    {
        Dictionary<Player, BoardFaceID> playerBet = new Dictionary<Player, BoardFaceID>();
        Player p = GameManager.GetSingleton().GetPlayer(0);
        playerBet.Add(p, betID);
        Bet NewBet = new Bet();
        NewBet.m_totalBet = p.Bet.m_totalBet;
        if(m_betList.ContainsKey(playerBet))
        {
            Bet oldBet = m_betList[playerBet];
            NewBet.m_totalBet += oldBet.m_totalBet;
            m_betList.Remove(playerBet);
        }

        m_betList.Add(playerBet,NewBet);

        DebugMessage.Log(string.Format("Player {0} Click bet : {1} with money {2}",
                                       p.PlayerProfile.Name,
                                       NewBet.m_betType,
                                       NewBet.m_totalBet));
    }
Ejemplo n.º 13
0
        public void ApplyStrategyForUserToExistedGames(string userName, string strategyName)
        {
            if (!this.CheckIfUserExists(userName))
                return;

            var betStrategy = this._strategyFactory.Create(strategyName);
            var games = this._gameRepository.GetAllGames();

            foreach (var game in games)
            {
                var result = betStrategy.CalculateResult();
                var bet = new Bet { Game = game, Result = result, UserName = userName };
                if(game.IsFinished)
                {
                    bet.Score = this._scorer.CalculateScore(bet);
                }

                this._betRepository.SaveBet(bet);
            }

               // this._rankingRepository.UpdateRanking();
        }
Ejemplo n.º 14
0
 public BetDecorator(Bet decoratedBet)
 {
     this.decoratedBet = decoratedBet;
 }
Ejemplo n.º 15
0
 public int CreateBet([FromBody] Bet bet)
 {
     return(this._betRepository.AddUpdateBet(bet));
 }
        internal void UpdateBetNew(object data)
        {
            var link = data as LinkData;

            if (link == null)
            {
                return;
            }

            Stopwatch sw = new Stopwatch();

            HttpRequest req = new HttpRequest();

            req.CharacterSet = Encoding.UTF8;
            if (UsingProxy)
            {
                req.Proxy = ProxyClient.Parse(ProxySingleManager.GetProxy());
            }
            int offset = 0;

            try
            {
                offset = GetServerOffset(req);
            }
            catch (Exception ex)
            {
                Logger.AddLog($"Не смогли получить смещение времи. {ex.Message}", Logger.LogTarget.MarafonThread, Logger.LogLevel.Error);
            }

            string        prefix  = GeneratorPrefix();
            string        updated = null;
            IHtmlDocument doc     = null;
            bool          reload  = true;

            while (true)
            {
                sw.Reset();
                sw.Start();

                try
                {
                    if (reload)
                    {
                        string response = req.Get($"{_url}/su/live/{link.Id}").ToString();
                        reload = false;
                        var bet = new Bet();
                        bet.Bookmaker = BookmakerType.Marafon;
                        bet.Site      = "M";
                        bet.Name      = link.Teams;
                        bet.URL       = $"su/live/{link.Id}";
                        bet.Team1Id   = link.Team1Id;
                        bet.Team2Id   = link.Team2Id;
                        var teams = link.Teams.Replace(" - ", "|").Split('|');
                        if (teams.Length < 2)
                        {
                            throw new ArgumentException($"{nameof(teams)}.Lenght!=2");
                        }

                        bet.Team1 = teams[0];
                        bet.Team2 = teams[1];


                        doc = CreteDocument(response);
                        bet = ParseBet(doc, bet);

                        var time = (int)sw.ElapsedMilliseconds;
                        sw.Stop();
                        _bets[link.Id] = bet;
                        if (time > MainConfigurate.Configurate.MarafonMaxTime)
                        {
                            throw new ArgumentException($"Долго парсили {sw.ElapsedMilliseconds} мс ");
                        }
                        Console.WriteLine("Событие загруженно!");
                    }
                    else
                    {
                        if (!_bets.ContainsKey(link.Id))
                        {
                            Console.WriteLine("Почему то нет такого ключа в базе.");
                            reload = true;
                            continue;
                        }
                        if (doc == null)
                        {
                            Console.WriteLine($"Почему то {nameof(doc)}==null");
                            reload = true;
                            continue;
                        }
                        if (String.IsNullOrWhiteSpace(updated))
                        {
                            updated = (ConvertToUnixTimestamp() - offset).ToString();
                        }
                        string url          = $"https://liveupdate.marathonbookmakers.com/su/livestreamupdate/{link.Id}?callback={prefix}&markets={link.Id}&available=&updated={updated}&oddsType=Decimal&siteStyle=MULTIMARKETS&_={ConvertToUnixTimestamp()}";
                        var    response     = req.Get(url).ToString().Trim();
                        var    responseData = response.Remove(response.Length - 1).Replace($"{prefix}(", "");
                        if (responseData.Contains("refreshPage"))
                        {
                            Console.WriteLine("Необходимо перезагрузить странницу");
                            reload  = true;
                            updated = null;
                            continue;
                        }
                        var json = JsonConvert.DeserializeObject <MarafonPingResponse>(responseData);
                        updated = json.Updated.ToString();
                        if (json.Modified == null)
                        {
                            Console.WriteLine("Обновление ставки не требуется!");
                            _bets[link.Id].Update();
                        }
                        else
                        {
                            foreach (Modified modified in json.Modified)
                            {
                                if (modified.Type == "mutableUpdates")
                                {
                                    try
                                    {
                                        UpdateDocument(doc, modified.Updates);
                                    }
                                    catch (Exception e)
                                    {
                                        reload  = true;
                                        updated = null;
                                        throw new ArgumentException($"Не удалось сделать частичное обновлеение. и вот почему: {e.Message}");
                                    }
                                }
                            }

                            var bet = _bets[link.Id].ShortCopy();
                            bet            = ParseBet(doc, bet);
                            _bets[link.Id] = bet;
                            Console.WriteLine("Сделали частичное обновление!");
                        }


                        Thread.Sleep(1500);
                    }
                }
                catch (Exception e)
                {
                    Logger.AddLog($"Не удалось спарсить {link.Id}. И вот почему: {e.Message}", Logger.LogTarget.MarafonThread, Logger.LogLevel.Warn);
                    Debug.WriteLine($"Не удалось спарсить {link.Id}. И вот почему: {e.Message}");
                    Thread.Sleep(5000);
                    if (UsingProxy)
                    {
                        req.Proxy = ProxyClient.Parse(ProxySingleManager.GetProxy());
                    }
                }
            }
        }
Ejemplo n.º 17
0
        /// <summary>
        /// Метод устанваливает ставки
        /// </summary>
        /// <param name="col"></param>
        public static void CalculateGame(IEnumerable <Setter> col)
        {
            Bets = new List <Bet>();
            foreach (var item in col)
            {
                var g = Gamblers.Find(s => s.Number == item.Gambler); //Выбираем игрока
                var b = Bugs.Find(s => s.Number == item.Bug);         //ВЫбираем участника

                var row = new Bet(b, g, item.Bet);                    //создаем ставку
                Bets.Add(row);                                        //добавляем ставку
            }

            //Генерируем случайные числа для каждого участника
            foreach (var item in Bugs)
            {
                item.RandomPosition();
            }

            //Определяем побудителей
            //-------------- первое место -----------------
            var Positions = Bugs.OrderByDescending(s => s.Position).Select(s => s.Position).Distinct().ToList();//Отсортировали по убыванию взяли тока уникальные значения
            var bugs      = Bugs.Where(s => s.Position == Positions[0]);

            var res = "";

            if (bugs.Count() > 1)
            {
                res = bugs.Aggregate("В забеге победили участники с номерами ", (current, item) => current + " " + item.Number);
            }
            else
            {
                res = "В забеге победил участник с номером " + bugs.First().Number;
            }
            ResultGames.Add(res + "\n");              //добавили в историю
            var summ       = Bets.Sum(s => s.Amount); //сумма всех ставок
            var first      = (summ / 2) / bugs.Count();
            var totalFirst = (summ / 2);

            if (bugs.Count() > 1)
            {
                res = "1-е место. Выйгрышь составил " + first.ToString("F2") + ". Количество победителей: " + bugs.Count();
            }
            else
            {
                res = "1-е место. Выйгрышь составил " + first.ToString("F2") + ". Количество победителей: 1";
            }
            ResultGames.Add(res + "\n");//добавили в историю

            //------------- второе место -----------------

            bugs = Bugs.Where(s => s.Position == Positions[1]);
            summ = summ - totalFirst;//сумма всех ставок
            var two      = (summ * 0.75) / bugs.Count();
            var totalTwo = (summ * 0.75);

            if (bugs.Count() > 1)
            {
                res = "2-е место. Выйгрышь составил " + two.ToString("F2") + ". Количество победителей: " + bugs.Count();
            }
            else
            {
                res = "2-е место. Выйгрышь составил " + two.ToString("F2") + ". Количество победителей: 1";
            }
            ResultGames.Add(res + "\n");//добавили в историю


            //-----------------третье место--------------
            bugs = Bugs.Where(s => s.Position == Positions[1]);
            summ = summ - (float)totalTwo;//сумма всех ставок
            var free = (summ) / bugs.Count();

            if (bugs.Count() > 1)
            {
                res = "3-е место. Выйгрышь составил " + free.ToString("F2") + ". Количество победителей: " + bugs.Count();
            }
            else
            {
                res = "3-е место. Выйгрышь составил " + free.ToString("F2") + ". Количество победителей: 1";
            }
            ResultGames.Add(res + "\n");//добавили в историю
        }
        /// <summary>
        /// Создает вилку
        /// </summary>
        /// <param name="one">ставка 1</param>
        /// <param name="two">ставка 2</param>
        /// <param name="bt1">нужный коэфицент</param>
        /// <param name="bt2">нужный коэфицент</param>
        /// <param name="to1">Навзание коэфицента</param>
        /// <param name="to2">Навзание коэфицента</param>
        /// <param name="data1">Данные для открытия первой ставки</param>
        /// <param name="data2">Данные для открытия второй ставки</param>
        /// <param name="forktype">Тип вилки</param>
        /// <returns></returns>
        private static Fork CreateFork(Bet one, Bet two, float bt1, float bt2, string to1, string to2, object data1, object data2, ForkType forktype = ForkType.Main)
        {
            Fork fr = new Fork();

            fr.ForkType  = forktype;
            fr.SportName = one.Groupe;
            fr.Teams     = one.Name;

            fr.Cof1 = bt1;
            fr.Cof2 = bt2;

            fr.SiteOne = one.Site;
            fr.SiteTwo = two.Site;

            fr.To1 = to1;
            fr.To2 = to2;


            fr.Url1 = one.URL;
            fr.Url2 = two.URL;

            //if (one.Time == two.Time)
            //    fr.Time = one.Time;
            //else
            //    fr.Time = one.Time + " " + two.Time;

            if (one.Time != null && one.Time != "-1")
            {
                if (one.Time.Contains(":"))
                {
                    fr.Time = one.Time.Split(':').First() + "'";
                }
                else
                {
                    fr.Time = one.Time;
                }
            }
            else
            {
                if (two.Time != null && two.Time != "-1")
                {
                    if (two.Time.Contains(":"))
                    {
                        fr.Time = two.Time.Split(':').First() + "'";
                    }
                    else
                    {
                        fr.Time = two.Time;
                    }
                }
            }

            if (one.SportType == two.SportType)
            {
                fr.SportType = one.SportType;
            }
            else
            {
                fr.SportType = SportType.Other;
            }

            fr.Data1 = data1;
            fr.Data2 = data2;

            fr.TypeOne = one.Bookmaker;
            fr.TypeTwo = two.Bookmaker;

            fr.Profit = (1 / ((1 / bt1) + (1 / bt2)) - 1) * 100;

            return(fr);
        }
Ejemplo n.º 19
0
        public static void Seed(ModelBuilder modelBuilder)
        {
            var leagues = new League[]
            {
                new League {
                    Id = 1, Name = "Serie A"
                },
                new League {
                    Id = 2, Name = "UEFA Champions League"
                },
                new League {
                    Id = 3, Name = "UEFA Europa League"
                },
                new League {
                    Id = 4, Name = "Jupiler Pro League"
                },
            };

            var games = new Game[]
            {
                //Serie A
                new Game {
                    Id = 1, Hometeam = "Juventus", AwayTeam = "Cagliari", DateOfGame = new DateTime(2020, 01, 20, 15, 30, 00), LeagueId = 1
                },
                new Game {
                    Id = 2, Hometeam = "Inter", AwayTeam = "Pescara", DateOfGame = new DateTime(2020, 01, 21, 18, 30, 00), LeagueId = 1
                },
                new Game {
                    Id = 3, Hometeam = "Napoli", AwayTeam = "Cagliari", DateOfGame = new DateTime(2020, 01, 20, 15, 30, 00), LeagueId = 1
                },
                new Game {
                    Id = 4, Hometeam = "Milan", AwayTeam = "Bologna", DateOfGame = new DateTime(2020, 01, 20, 20, 30, 00), LeagueId = 1
                },
                //Jupiler League
                new Game {
                    Id = 5, Hometeam = "Club Brugge", AwayTeam = "Cercle Brugge", DateOfGame = new DateTime(2020, 01, 23, 13, 30, 00), LeagueId = 2
                },
                new Game {
                    Id = 6, Hometeam = "KRC Genk", AwayTeam = "AA Gent", DateOfGame = new DateTime(2020, 01, 23, 18, 30, 00), LeagueId = 2
                },
                new Game {
                    Id = 7, Hometeam = "Standard", AwayTeam = "FC Antwerp", DateOfGame = new DateTime(2020, 01, 23, 20, 30, 00), LeagueId = 2
                },
                new Game {
                    Id = 8, Hometeam = "Club Brugge", AwayTeam = "Cercle Brugge", DateOfGame = new DateTime(2020, 01, 23, 13, 30, 00), LeagueId = 2
                },
                //UEFA Champions League
                new Game {
                    Id = 9, Hometeam = "Atletico Madrid", AwayTeam = "Liverpool", DateOfGame = new DateTime(2020, 02, 18, 20, 30, 00), LeagueId = 3
                },
                new Game {
                    Id = 10, Hometeam = "Atalanta", AwayTeam = "Valencia", DateOfGame = new DateTime(2020, 02, 19, 20, 30, 00), LeagueId = 3
                },
                new Game {
                    Id = 11, Hometeam = "Chelsea", AwayTeam = "Bayern", DateOfGame = new DateTime(2020, 02, 19, 20, 30, 00), LeagueId = 3
                },
                new Game {
                    Id = 12, Hometeam = "Napoli", AwayTeam = "Barcelona", DateOfGame = new DateTime(2020, 02, 25, 21, 00, 00), LeagueId = 3
                },
                //UEFA Europa League
                new Game {
                    Id = 13, Hometeam = "Ludogorets", AwayTeam = "Inter Milan", DateOfGame = new DateTime(2020, 02, 20, 20, 30, 00), LeagueId = 4
                },
                new Game {
                    Id = 14, Hometeam = "Club Brugge", AwayTeam = "Man United", DateOfGame = new DateTime(2020, 02, 20, 21, 30, 00), LeagueId = 4
                },
                new Game {
                    Id = 15, Hometeam = "AA Gent", AwayTeam = "AS Roma", DateOfGame = new DateTime(2020, 02, 27, 20, 30, 00), LeagueId = 4
                },
                new Game {
                    Id = 16, Hometeam = "Olympiacos", AwayTeam = "Arsenal", DateOfGame = new DateTime(2020, 02, 21, 20, 30, 00), LeagueId = 4
                },
            };

            var users = new User[]
            {
                new User {
                    Id = 1, UserName = "******", Password = "******"
                },
                new User {
                    Id = 2, UserName = "******", Password = "******"
                },
                new User {
                    Id = 3, UserName = "******", Password = "******"
                },
                new User {
                    Id = 4, UserName = "******", Password = "******"
                },
                new User {
                    Id = 5, UserName = "******", Password = "******"
                },
            };
            var bets = new Bet[]
            {
                new Bet {
                    UserId = users[0].Id, GameId = games[0].Id
                },
                new Bet {
                    UserId = users[0].Id, GameId = games[5].Id
                },
                new Bet {
                    UserId = users[0].Id, GameId = games[9].Id
                },
                new Bet {
                    UserId = users[1].Id, GameId = games[8].Id
                },
                new Bet {
                    UserId = users[1].Id, GameId = games[10].Id
                },
                new Bet {
                    UserId = users[1].Id, GameId = games[11].Id
                },
                new Bet {
                    UserId = users[2].Id, GameId = games[15].Id
                },
                new Bet {
                    UserId = users[2].Id, GameId = games[7].Id
                },
                new Bet {
                    UserId = users[2].Id, GameId = games[12].Id
                },
                new Bet {
                    UserId = users[2].Id, GameId = games[13].Id
                },
                new Bet {
                    UserId = users[3].Id, GameId = games[2].Id
                },
            };

            modelBuilder.Entity <League>().HasData(leagues);
            modelBuilder.Entity <Game>().HasData(games);
            modelBuilder.Entity <User>().HasData(users);
            modelBuilder.Entity <Bet>().HasData(bets);
        }
Ejemplo n.º 20
0
 public void InitPlayer(int id, string name, int coin, int age)
 {
     m_Profile = new Profile(id, name, coin, age);
     gameObject.name = name;
     m_bet = new Bet();
 }
 public void PlaceBet(Bet bet)
 {
     if (_roundIsOpen) _bets.Add(bet);
     else throw new RouletteGameException("Bet placed while round closed");
 }
Ejemplo n.º 22
0
        public virtual void ReadXML()
        {
            string urlPath = Constant.SourceXML.TITABETURL;
            string mainSport = ConfigurationManager.AppSettings["TITANBETMAINSPORT"].ToString();
            _lstSport = new List<Sport>();
            _lstEvent = new List<Event>();
            _lstMatch = new List<Match>();
            _lstBet = new List<Bet>();
            _lstChoice = new List<Choice>();

            XmlTextReader reader = new XmlTextReader(urlPath);
            // Skip non-significant whitespace
            reader.WhitespaceHandling = WhitespaceHandling.Significant;
            XPathDocument doc = new XPathDocument(reader, XmlSpace.Preserve);
            XPathNavigator nav = doc.CreateNavigator();

            string[] arrMainSportId = mainSport.Split(',');
            try
            {
                int _sportId = 0;
                int _eventId = 0;
                long _matchId = 0;
                long _betId = 0;
                long _choiceId = 0;
                foreach (string sportid in arrMainSportId)
                {
                    XPathExpression exprSport;
                    exprSport = nav.Compile("/bookmaker/sport[@id='" + sportid + "']");
                    XPathNodeIterator iteratorSport = nav.Select(exprSport);
                    while (iteratorSport.MoveNext())
                    {
                        XPathNavigator _sportNameNavigator = iteratorSport.Current.Clone();
                        _sportId++;
                        Sport _sport = new Sport();
                        _sport.sportId = _sportId;
                        _sport.sportName = _sportNameNavigator.GetAttribute("name", "");
                        _lstSport.Add(_sport);

                        if (_sportNameNavigator.HasChildren)
                        {
                            XPathExpression exprevent;
                            exprevent = _sportNameNavigator.Compile("group");
                            XPathNodeIterator iteratorEvent = _sportNameNavigator.Select(exprevent);
                            while (iteratorEvent.MoveNext())
                            {
                                _eventId++;
                                XPathNavigator _eventNameNavigator = iteratorEvent.Current.Clone();
                                Event _event = new Event();
                                _event.eventId = _eventId;
                                _event.sportId = _sportId;
                                _event.eventName = _eventNameNavigator.GetAttribute("name", "");
                                _lstEvent.Add(_event);

                                if (_eventNameNavigator.HasChildren)
                                {
                                    XPathExpression exprematch;
                                    exprematch = _eventNameNavigator.Compile("event");
                                    XPathNodeIterator iteratorMatch = _eventNameNavigator.Select(exprematch);
                                    while (iteratorMatch.MoveNext())
                                    {
                                        _matchId++;
                                        XPathNavigator _matchNameNavigator = iteratorMatch.Current.Clone();
                                        Match _match = new Match();
                                        _match.matchId = _matchId;
                                        _match.eventId = _eventId;
                                        string[] league = _matchNameNavigator.GetAttribute("name", "").Split('-');
                                        if (league.Length > 1)
                                        {
                                            _match.homeTeam = league[0].Trim();
                                            _match.awayTeam = league[1].Trim();
                                        }
                                        else
                                        {
                                            _match.homeTeam = _matchNameNavigator.GetAttribute("name", "");
                                        }
                                        _match.startTime = Convert.ToDateTime(_matchNameNavigator.GetAttribute("date", ""));
                                        _lstMatch.Add(_match);

                                        if (_matchNameNavigator.HasChildren)
                                        {
                                            string OddTypeString = string.Empty;
                                            switch (_sportId)
                                            {
                                                case 1:
                                                    OddTypeString = Constant.TitanBetOddTypeID.CRICKET;
                                                    break;
                                                case 2:
                                                    OddTypeString = Constant.TitanBetOddTypeID.HANDBALL;
                                                    break;
                                                case 3:
                                                    OddTypeString = Constant.TitanBetOddTypeID.HORSERACING;
                                                    break;
                                                case 4:
                                                    OddTypeString = Constant.TitanBetOddTypeID.MOTORSPORTS;
                                                    break;
                                                case 5:
                                                    OddTypeString = Constant.TitanBetOddTypeID.BOXING;
                                                    break;
                                                case 6:
                                                    OddTypeString = Constant.TitanBetOddTypeID.GOLF;
                                                    break;
                                                case 7:
                                                    OddTypeString = Constant.TitanBetOddTypeID.TENNIS;
                                                    break;
                                                case 8:
                                                    OddTypeString = Constant.TitanBetOddTypeID.FOOTBALL;
                                                    break;
                                            }
                                            string[] arrOddTypeId = OddTypeString.Split(',');
                                            foreach (string oddTypeId in arrOddTypeId)
                                            {
                                                XPathExpression exprebet;
                                                exprebet = _matchNameNavigator.Compile("market[@tid='"+oddTypeId+"']");
                                                XPathNodeIterator iteratorBet = _matchNameNavigator.Select(exprebet);
                                                while (iteratorBet.MoveNext())
                                                {
                                                    _betId++;
                                                    XPathNavigator _betNameNavigator = iteratorBet.Current.Clone();
                                                    Bet _bet = new Bet();
                                                    _bet.betId = _betId;
                                                    _bet.matchId = _matchId;
                                                    _bet.betName = _betNameNavigator.GetAttribute("name", "");
                                                    _bet.betCodeID = _betNameNavigator.GetAttribute("tid", "");

                                                    _lstBet.Add(_bet);

                                                    if (_betNameNavigator.HasChildren)
                                                    {
                                                        XPathExpression exprechoice;
                                                        exprechoice = _betNameNavigator.Compile("outcome");
                                                        XPathNodeIterator iteratorChoice = _betNameNavigator.Select(exprechoice);
                                                        while (iteratorChoice.MoveNext())
                                                        {
                                                            _choiceId++;
                                                            XPathNavigator _choiceNameNavigator = iteratorChoice.Current.Clone();
                                                            Choice _choice = new Choice();
                                                            _choice.choiceId = _choiceId;
                                                            _choice.betId = _betId;
                                                            _choice.choiceCodeId = (long)Constant.ChoiceType.OTHER;
                                                            _choice.choiceCodeName = "OTHER";
                                                            _choice.choiceName = _choiceNameNavigator.GetAttribute("name", "");
                                                            _choice.odd = _choiceNameNavigator.GetAttribute("odds", "");
                                                            _choice.american_odd = _choiceNameNavigator.GetAttribute("american_odds", "");
                                                            _choice.fra_odd = _choiceNameNavigator.GetAttribute("fra_odds", "");
                                                            _lstChoice.Add(_choice);
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
Ejemplo n.º 23
0
 public void VerifyRouletteColor()
 {
     var bet = new Bet(BetType.Red, 100);
     Assert.AreEqual(RouletteColors.Red, bet.BetType.RouletteColor);
 }
Ejemplo n.º 24
0
 public void VerifyAmount()
 {
     var bet = new Bet(BetType.Black, 123);
     Assert.AreEqual(123, bet.Amount);
 }
Ejemplo n.º 25
0
 public void Number18BetColor()
 {
     var bet = new Bet(BetType.Number18, 100);
     Assert.AreEqual(RouletteColors.Red, bet.BetType.RouletteColor);
 }
        public void TestExceptionForHistoricalBet()
        {
            DateTime futureDateTime = new DateTime(2200, 12, 1);

            Bet bet = new Bet("Carlow", "Oscar the horse", futureDateTime, 500m, true);
        }
Ejemplo n.º 27
0
 public bool CheckStopPOstStats(Bet NewBet, bool win, SessionStats Stats, out string reason, SiteStats siteStats)
 {
     if (EnableUpperLimit && UpperLimitCompare == "Balance" && UpperLimitAction == LimitAction.Stop)
     {
         if (siteStats.Balance >= UpperLimit)
         {
             reason = "Upper balance limit reached.";
             return(true);
         }
     }
     if (EnableLowerLimit && UpperLimitCompare == "Balance" && LowerLimitAction == LimitAction.Stop)
     {
         if (siteStats.Balance <= LowerLimit)
         {
             reason = "lower balance limit reached.";
             return(true);
         }
     }
     if (EnableUpperLimit && UpperLimitCompare == "Profit" && UpperLimitAction == LimitAction.Stop)
     {
         if (Stats.Profit >= UpperLimit)
         {
             reason = "Upper profit limit reached. Stopping.";
             return(true);
         }
     }
     if (EnableLowerLimit && UpperLimitCompare == "Profit" && LowerLimitAction == LimitAction.Stop)
     {
         if (Stats.Profit <= LowerLimit)
         {
             reason = "Lower profit limit reached. Stopping.";
             return(true);
         }
     }
     if (EnableStopAfterBets && Stats.Bets >= StopAfterBets)
     {
         reason = "Stop after " + StopAfterBets + " bets condition triggered with " + Stats.Bets + " bets, Stopping.";
         return(true);
     }
     if (EnableStopAfterTime && (Stats.RunningTime + (long)(DateTime.Now - Stats.StartTime).TotalMilliseconds) > StopAfterTime)
     {
         reason = "Stop after " + StopAfterTime.ToString("HH:mm:ss") + " run time condition triggered with " + (new TimeSpan(0, 0, 0, 0, (int)(Stats.RunningTime + (long)(DateTime.Now - Stats.StartTime).TotalMilliseconds))).ToString("HH:mm:ss") + " running time, Stopping.";
         return(true);
     }
     if (win)
     {
         if (EnableStopAfterWinStreak && Stats.WinStreak >= StopAfterWinStreak)
         {
             reason = string.Format("Stop after {0} {1} conditino triggered with {2} {1}, Stopping", StopAfterWinStreak, "Wines in a row", Stats.WinStreak);
             return(true);
         }
         if (EnableStopAfterBtcWin && Stats.Profit >= StopAfterBtcWin)
         {
             reason = string.Format("Stop after {0} {1} conditino triggered with {2} {1}, Stopping", StopAfterBtcWin, "Currency Win", Stats.Profit);
             return(true);
         }
         if (EnableStopAfterBtcWinStreak && Stats.CurrentProfit >= StopAfterBtcWinStreak)
         {
             reason = string.Format("Stop after {0} {1} conditino triggered with {2} {1}, Stopping", StopAfterBtcWinStreak, "Currency Streak Win", Stats.CurrentProfit);
             return(true);
         }
         if (EnableStopAfterWins && Stats.Wins % StopAfterWins == 0)
         {
             reason = string.Format("Stop after {0} {1} conditino triggered with {2} {1}, Stopping", StopAfterWins, "Wins", Stats.Wins);
             return(true);
         }
         if (EnableStopWinFromMinProfit && Stats.Profit - Stats.MinProfit >= StopWinFromMinProfit)
         {
             reason = string.Format("Stop after {0} {1} conditino triggered with {2} {1}, Stopping", StopWinFromMinProfit, "profit since min profit", Stats.Profit - Stats.MinProfit);
             return(true);
         }
     }
     else
     {
         if (EnableStopAfterLoseStreak && Stats.LossStreak >= StopAfterLoseStreak)
         {
             reason = string.Format("Stop after {0} {1} conditino triggered with {2} {1}, Stopping", StopAfterLoseStreak, "Losses in a row", Stats.LossStreak);
             return(true);
         }
         if (EnableStopAfterBtcLoss && -Stats.Profit >= StopAfterBtcLoss)
         {
             reason = string.Format("Stop after {0} {1} conditino triggered with {2} {1}, Stopping", StopAfterBtcLoss, "Currency Loss", Stats.Profit);
             return(true);
         }
         if (EnableStopAfterBtcLoseStreak && Stats.CurrentProfit <= -StopAfterBtcLoseStreak)
         {
             reason = string.Format("Stop after {0} {1} conditino triggered with {2} {1}, Stopping", StopAfterBtcLoseStreak, "Currency Streak Loss", Stats.CurrentProfit);
             return(true);
         }
         if (EnableStopAfterLosses && Stats.Losses % StopAfterLosses == 0)
         {
             reason = string.Format("Stop after {0} {1} conditino triggered with {2} {1}, Stopping", StopAfterLosses, "Losses", Stats.Losses);
             return(true);
         }
         if (EnableStopLossFromMaxProfit && Stats.MaxProfit - Stats.Profit >= StopLossFromMaxProfit)
         {
             reason = string.Format("Stop after {0} {1} conditino triggered with {2} {1}, Stopping", StopLossFromMaxProfit, "loss since max profit", Stats.MaxProfit - Stats.Profit);
             return(true);
         }
     }
     reason = "";
     return(false);
 }
Ejemplo n.º 28
0
        protected void gvMatch_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                var drv = e.Row.DataItem as DataRowView;

                if (drv != null)
                {
                    var m = new Match((Guid)drv["MatchGuid"]);

                    var lblHome    = e.Row.FindControl("lblHome") as Label;
                    var lblAway    = e.Row.FindControl("lblAway") as Label;
                    var hlVersus   = e.Row.FindControl("hlVersus") as HyperLink;
                    var ltrlResult = e.Row.FindControl("ltrlResult") as Literal;

                    if (lblHome != null && lblAway != null && hlVersus != null)
                    {
                        var tHome = Team.Cache.Load(m.Home);
                        var tAway = Team.Cache.Load(m.Away);

                        var strTeamName =
                            "<a class=\"StrongLink\" href=\"CasinoTeam.aspx?Team={0}\"  title=\"{1}\">{2}</a> ";
                        var strTeamLogo = "<img src=\"{3}\" alt=\"{1}\" /> ";

                        lblHome.Text = string.Format(strTeamName + strTeamLogo,
                                                     tHome.ID, tHome.TeamEnglishName, tHome.TeamDisplayName, tHome.TeamLogo);
                        lblAway.Text = string.Format(strTeamLogo + strTeamName,
                                                     tAway.ID, tAway.TeamEnglishName, tAway.TeamDisplayName, tAway.TeamLogo);

                        hlVersus.NavigateUrl = $"CasinoTeam.aspx?Match={m.MatchGuid}";
                        hlVersus.Text        =
                            $"<em title=\"{tHome.Ground}{(tHome.Capacity.HasValue ? ("(" + tHome.Capacity.Value + ")") : string.Empty)}\">vs</em>";
                    }

                    if (ltrlResult != null && m.ResultHome.HasValue && m.ResultAway.HasValue)
                    {
                        ltrlResult.Text = $"{m.ResultHome.Value} : {m.ResultAway.Value}";
                    }

                    var ltrlTotalBetCount = e.Row.FindControl("ltrlTotalBetCount") as Literal;
                    var ltrlTotalBetCash  = e.Row.FindControl("ltrlTotalBetCash") as Literal;
                    var ltrlTotalWin      = e.Row.FindControl("ltrlTotalWin") as Literal;

                    var betList = Bet.GetMatchAllBet(m.MatchGuid);

                    if (ltrlTotalBetCount != null)
                    {
                        ltrlTotalBetCount.Text = betList.Count.ToString();
                    }

                    if (ltrlTotalBetCash != null)
                    {
                        float totalbetCash = 0;
                        betList.ForEach(delegate(Bet bet) { totalbetCash += bet.BetAmount.GetValueOrDefault(0f); });
                        ltrlTotalBetCash.Text = totalbetCash.ToString("N0");
                    }

                    if (ltrlTotalWin != null)
                    {
                        float totalWin = 0;
                        betList.ForEach(
                            delegate(Bet bet)
                        {
                            totalWin += (bet.BetAmount.GetValueOrDefault(0f) - bet.Earning.GetValueOrDefault(0f));
                        });
                        ltrlTotalWin.Text = totalWin.ToString("N2");
                    }
                }
            }
        }
Ejemplo n.º 29
0
 public void Number17BetColor()
 {
     var bet = new Bet(BetType.Number17, 100);
     Assert.AreEqual(RouletteColors.Black, bet.BetType.RouletteColor);
 }
Ejemplo n.º 30
0
        /// <summary>
        /// Receive a SocketMessage, a list of PlayerBets, and a Bet.
        ///
        /// Calculate the amount of points that someone earned via betting, either choosing the actual winner,
        /// or those closest to the result.
        /// </summary>
        /// <param name="sm"></param>
        /// <param name="playerBets"></param>
        /// <param name="bet"></param>
        private async void CalculatePoints(SocketMessage sm, List <PlayerBet> playerBets, Bet bet)
        {
            if (playerBets == null)
            {
                await sm.Channel.SendMessageAsync($"No one bet on {bet.Id} - {bet.Name}");

                return;
            }

            var playersAndBetsDiff = new Dictionary <Int64, Int32>();

            // Get the difference between a player's bet and the winning value
            foreach (var playerBet in playerBets)
            {
                playersAndBetsDiff.Add(playerBet.BetterId, Math.Abs(bet.WinningBet - playerBet.Bet));
            }

            // Sorted list of PlayerBets by bet value difference
            var sortedPlayerBetsDiff =
                (from entry
                 in playersAndBetsDiff
                 orderby entry.Value
                 select entry).ToList();

            // Find the closest value to the bet and select winners based on that
            var closestBet = sortedPlayerBetsDiff.First().Value;
            var winners    = sortedPlayerBetsDiff.Where(b => b.Value == closestBet);

            // List of al winning betters
            var winningBetters =
                (from winner in winners
                 join player in _bettingGame.Betters on winner.Key equals player.Id
                 select player).ToList();

            var winningPool = 0;
            var betPool     = bet.BetPool;

            // Give the winning betters their bets back and add to the winningPool
            foreach (var player in winningBetters)
            {
                var value = playerBets.First(p => p.BetterId == player.Id).Points;
                player.Points += value;
                betPool       -= value;
                winningPool   += value;
            }

            // Build the string of the winners and give them a percentage of the pool based on their bet
            StringBuilder sb = new StringBuilder();

            foreach (var player in winningBetters)
            {
                var value = playerBets.First(p => p.BetterId == player.Id).Points;
                sb.Append(player.Name + "\n");
                player.Points += value / winningPool * betPool;
                player.WonBetsList.Add(bet.Id, bet.Name);
                player.BetsWon++;
            }

            SerializeData(_bettingGame);
        }
        private List <Fork> Check(Bet one, Bet two)
        {
            List <Fork> rezult = new List <Fork>();


            //Новый Ит
            if (one.ITotals.Count != 0 && two.ITotals.Count != 0)
            {
                foreach (Stake oneTotal in one.ITotals)
                {
                    foreach (Stake twoTotal in two.ITotals)
                    {
                        if (oneTotal.Team != twoTotal.Team)
                        {
                            continue;
                        }
                        if (oneTotal.StakeType == twoTotal.StakeType)
                        {
                            continue;
                        }
                        if (oneTotal.Parametr == twoTotal.Parametr)
                        {
                            if (CheckFork(oneTotal.Coef, twoTotal.Coef))
                            {
                                rezult.Add(CreateFork(one, two, oneTotal.Coef, twoTotal.Coef, oneTotal.ToString(), twoTotal.ToString(), oneTotal.ParametrO, twoTotal.ParametrO));
                            }
                        }
                        else if (oneTotal.Parametr > twoTotal.Parametr && twoTotal.StakeType == StakeType.ITmax)
                        {
                            if (CheckFork(oneTotal.Coef, twoTotal.Coef))
                            {
                                rezult.Add(CreateFork(one, two, oneTotal.Coef, twoTotal.Coef, oneTotal.ToString(), twoTotal.ToString(), oneTotal.ParametrO, twoTotal.ParametrO));
                            }
                        }

                        else if (oneTotal.Parametr < twoTotal.Parametr && twoTotal.StakeType == StakeType.ITmin)
                        {
                            if (CheckFork(oneTotal.Coef, twoTotal.Coef))
                            {
                                rezult.Add(CreateFork(one, two, oneTotal.Coef, twoTotal.Coef, oneTotal.ToString(), twoTotal.ToString(), oneTotal.ParametrO, twoTotal.ParametrO));
                            }
                        }
                    }
                }
            }


            if (one.Games.Count != 0 && two.Games.Count != 0)
            {
                foreach (var gameOne in one.Games)
                {
                    foreach (var gameTwo in two.Games)
                    {
                        if (gameOne.GameNumber == gameTwo.GameNumber)
                        {
                            if (CompareTeamsName(gameOne.Team1, gameTwo.Team1) && CompareTeamsName(gameOne.Team2, gameTwo.Team2))
                            {
                                if (CheckFork(gameOne.Coef1, gameTwo.Coef2))
                                {
                                    rezult.Add(CreateFork(one, two, gameOne.Coef1, gameTwo.Coef2, gameOne.GameNumber.ToString(), gameTwo.GameNumber.ToString(), gameOne.Coef1o, gameTwo.Coef2o));
                                }

                                if (CheckFork(gameOne.Coef2, gameTwo.Coef1))
                                {
                                    rezult.Add(CreateFork(one, two, gameOne.Coef2, gameTwo.Coef1, gameOne.GameNumber.ToString(), gameTwo.GameNumber.ToString(), gameOne.Coef2o, gameTwo.Coef1o));
                                }
                            }
                        }
                    }
                }
            }



            if (one.SportType == SportType.Теннис ||
                one.SportType == SportType.Снукер ||
                one.SportType == SportType.Бейсбол ||
                one.SportType == SportType.Волейбол ||
                one.SportType == SportType.Бадминтон ||
                one.SportType == SportType.Настольный_теннис)
            {
                rezult.AddRange(GetFork(one, two, BetNumber._1, BetNumber._2));

                foreach (Stake oneFora in one.Foras)
                {
                    if (oneFora.Parametr >= 0)
                    {
                        if (oneFora.StakeType == StakeType.Fora1)
                        {
                            if (CheckFork(oneFora.Coef, two._2))
                            {
                                rezult.Add(CreateFork(one, two, oneFora.Coef, two._2, oneFora.ToString(), two.ToMyString(BetNumber._2),
                                                      oneFora.ParametrO, two._2o));
                            }
                        }
                        else
                        {
                            if (CheckFork(oneFora.Coef, two._1))
                            {
                                rezult.Add(CreateFork(one, two, oneFora.Coef, two._1, oneFora.ToString(), two.ToMyString(BetNumber._1),
                                                      oneFora.ParametrO, two._1o));
                            }
                        }
                    }
                }

                foreach (Stake twoFora in two.Foras)
                {
                    if (twoFora.Parametr >= 0)
                    {
                        if (twoFora.StakeType == StakeType.Fora1)
                        {
                            if (CheckFork(twoFora.Coef, one._2))
                            {
                                rezult.Add(CreateFork(two, one, twoFora.Coef, one._2, twoFora.ToString(), one.ToMyString(BetNumber._2),
                                                      twoFora.ParametrO, one._2o));
                            }
                        }
                        else
                        {
                            if (CheckFork(twoFora.Coef, one._1))
                            {
                                rezult.Add(CreateFork(two, one, twoFora.Coef, one._1, twoFora.ToString(), one.ToMyString(BetNumber._1),
                                                      twoFora.ParametrO, one._1o));
                            }
                        }
                    }
                }
            }



            else
            {
                foreach (Stake oneFora in one.Foras)
                {
                    if (oneFora.Parametr >= 0.5)
                    {
                        if (oneFora.StakeType == StakeType.Fora1)
                        {
                            if (CheckFork(oneFora.Coef, two._2))
                            {
                                rezult.Add(CreateFork(one, two, oneFora.Coef, two._2, oneFora.ToString(), two.ToMyString(BetNumber._2),
                                                      oneFora.ParametrO, two._2o));
                            }
                        }
                        else
                        {
                            if (CheckFork(oneFora.Coef, two._1))
                            {
                                rezult.Add(CreateFork(one, two, oneFora.Coef, two._1, oneFora.ToString(), two.ToMyString(BetNumber._1),
                                                      oneFora.ParametrO, two._1o));
                            }
                        }
                    }
                    else if (oneFora.Parametr > 0)
                    {
                        if (oneFora.StakeType == StakeType.Fora1)
                        {
                            if (CheckFork(oneFora.Coef, two._X2))
                            {
                                rezult.Add(CreateFork(two, one, oneFora.Coef, two._X2, oneFora.ToString(), two.ToMyString(BetNumber._X2),
                                                      oneFora.ParametrO, one._X2o));
                            }
                        }
                        else
                        {
                            if (CheckFork(oneFora.Coef, two._1X))
                            {
                                rezult.Add(CreateFork(two, one, oneFora.Coef, two._1X, oneFora.ToString(), two.ToMyString(BetNumber._1X),
                                                      oneFora.ParametrO, one._1X));
                            }
                        }
                    }
                }

                foreach (Stake twoFora in two.Foras)
                {
                    if (twoFora.Parametr >= 0.5)
                    {
                        if (twoFora.StakeType == StakeType.Fora1)
                        {
                            if (CheckFork(twoFora.Coef, one._2))
                            {
                                rezult.Add(CreateFork(two, one, twoFora.Coef, one._2, twoFora.ToString(), one.ToMyString(BetNumber._2),
                                                      twoFora.ParametrO, one._2o));
                            }
                        }
                        else
                        {
                            if (CheckFork(twoFora.Coef, one._1))
                            {
                                rezult.Add(CreateFork(two, one, twoFora.Coef, one._1, twoFora.ToString(), one.ToMyString(BetNumber._1),
                                                      twoFora.ParametrO, one._1o));
                            }
                        }
                    }
                    else if (twoFora.Parametr > 0)
                    {
                        if (twoFora.StakeType == StakeType.Fora1)
                        {
                            if (CheckFork(twoFora.Coef, one._X2))
                            {
                                rezult.Add(CreateFork(two, one, twoFora.Coef, one._X2, twoFora.ToString(), one.ToMyString(BetNumber._X2),
                                                      twoFora.ParametrO, one._X2o));
                            }
                        }
                        else
                        {
                            if (CheckFork(twoFora.Coef, one._1X))
                            {
                                rezult.Add(CreateFork(two, one, twoFora.Coef, one._1X, twoFora.ToString(), one.ToMyString(BetNumber._1X),
                                                      twoFora.ParametrO, one._1X));
                            }
                        }
                    }
                }
            }



            //Если в игре только 2 исхода, то мы не получим тут вилок, т.к. Х или 12 будет равно 0;
            //Они общие потому что например в баскете победитель матча всегда один. но в половинах или четвертях
            //может быть ничья

            rezult.AddRange(GetFork(one, two, BetNumber._12, BetNumber._X));

            rezult.AddRange(GetFork(one, two, BetNumber._1X, BetNumber._2));

            rezult.AddRange(GetFork(one, two, BetNumber._1, BetNumber._X2));

            rezult.AddRange(GetFork(one, two, BetNumber._1X, BetNumber._X2));



            foreach (Stake oneFora in one.Foras)
            {
                foreach (Stake twoFora in two.Foras)
                {
                    if (oneFora.StakeType != twoFora.StakeType)
                    {
                        if (twoFora.Parametr != oneFora.Parametr &&
                            Math.Abs(twoFora.Parametr) == Math.Abs(oneFora.Parametr))
                        {
                            if (CheckFork(oneFora.Coef, twoFora.Coef))
                            {
                                rezult.Add(CreateFork(one, two, oneFora.Coef, twoFora.Coef, oneFora.ToString(),
                                                      twoFora.ToString(), oneFora.ParametrO, twoFora.ParametrO));
                            }
                        }
                        else if (oneFora.Parametr > 0 && twoFora.Parametr < 0 &&
                                 Math.Abs(oneFora.Parametr) > Math.Abs(twoFora.Parametr)
                                 ||
                                 twoFora.Parametr > 0 && oneFora.Parametr < 0 &&
                                 Math.Abs(twoFora.Parametr) > Math.Abs(oneFora.Parametr))
                        {
                            if (CheckFork(oneFora.Coef, twoFora.Coef))
                            {
                                rezult.Add(CreateFork(one, two, oneFora.Coef, twoFora.Coef, oneFora.ToString(),
                                                      twoFora.ToString(), oneFora.ParametrO, twoFora.ParametrO));
                            }
                        }
                    }
                }
            }

            foreach (Stake oneTotal in one.Totals)
            {
                foreach (Stake twoTotal in two.Totals)
                {
                    if (oneTotal.StakeType != twoTotal.StakeType)
                    {
                        if (oneTotal.Parametr == twoTotal.Parametr)
                        {
                            if (CheckFork(oneTotal.Coef, twoTotal.Coef))
                            {
                                rezult.Add(CreateFork(one, two, oneTotal.Coef, twoTotal.Coef, oneTotal.ToString(),
                                                      twoTotal.ToString(), oneTotal.ParametrO, twoTotal.ParametrO));
                            }
                        }
                        else if (oneTotal.StakeType == StakeType.Tmax &&
                                 twoTotal.StakeType == StakeType.Tmin &&
                                 oneTotal.Parametr < twoTotal.Parametr)
                        {
                            if (CheckFork(oneTotal.Coef, twoTotal.Coef))
                            {
                                rezult.Add(CreateFork(one, two, oneTotal.Coef, twoTotal.Coef, oneTotal.ToString(),
                                                      twoTotal.ToString(), oneTotal.ParametrO, twoTotal.ParametrO));
                            }
                        }

                        else if (oneTotal.StakeType == StakeType.Tmin &&
                                 twoTotal.StakeType == StakeType.Tmax &&
                                 oneTotal.Parametr > twoTotal.Parametr)
                        {
                            if (CheckFork(oneTotal.Coef, twoTotal.Coef))
                            {
                                rezult.Add(CreateFork(one, two, oneTotal.Coef, twoTotal.Coef, oneTotal.ToString(),
                                                      twoTotal.ToString(), oneTotal.ParametrO, twoTotal.ParametrO));
                            }
                        }
                    }
                }
            }

            return(rezult);
        }
Ejemplo n.º 32
0
 public Player3(Bet MyBet, Label MaximumBet, int Cash, Label MyLabel) : base(MyBet, MaximumBet, Cash, MyLabel)
 {
 }
Ejemplo n.º 33
0
 /// <summary>
 /// Sets the boolean Verified on a persisted Bet.
 /// </summary>
 /// <param name="bet"></param>
 public void UpdateVerifiedOnBet(Bet bet)
 {
     _dbUser.UpdateVerifiedOnBet(bet);
 }
Ejemplo n.º 34
0
        public async Task <ActionResult <Bet> > PostBet(Bet bet)
        {
            await context.SaveAsync(bet);

            return(bet);
        }
        internal void UpdateBet(object data)
        {
            var link = data as LinkData;

            if (link == null)
            {
                return;
            }

            Stopwatch sw = new Stopwatch();

            HttpRequest req = new HttpRequest();

            req.CharacterSet = Encoding.UTF8;
            if (UsingProxy)
            {
                req.Proxy = ProxyClient.Parse(ProxySingleManager.GetProxy());
            }

            while (true)
            {
                try
                {
                    var response = req.Get($"{_url}/su/live/{link.Id}").ToString();
                    sw.Reset();
                    sw.Start();
                    var bet = new Bet();
                    bet.Bookmaker = BookmakerType.Marafon;
                    bet.Site      = "M";
                    bet.Name      = link.Teams;
                    bet.URL       = $"su/live/{link.Id}";
                    bet.Team1Id   = link.Team1Id;
                    bet.Team2Id   = link.Team2Id;
                    var teams = link.Teams.Replace(" - ", "|").Split('|');
                    if (teams.Length < 2)
                    {
                        throw new ArgumentException($"{nameof(teams)}.Lenght!=2");
                    }

                    bet.Team1 = teams[0];
                    bet.Team2 = teams[1];


                    var doc = CreteDocument(response);
                    bet = ParseBet(doc, bet);

                    var time = (int)sw.ElapsedMilliseconds;
                    sw.Stop();
                    _bets[link.Id] = bet;
                    if (time > MainConfigurate.Configurate.MarafonMaxTime)
                    {
                        throw new ArgumentException("Долго парсили");
                    }
                }
                catch (ThreadAbortException ex)

                {
                    break;
                }
                catch (Exception ex)
                {
                    Logger.AddLog($"{link.Id};URl: {_url}/su/live/{link.Id} Время {sw.ElapsedMilliseconds};Ошибка парсинга: {ex.Message}", Logger.LogTarget.MarafonThread, Logger.LogLevel.Warn);
                }

                if (UsingProxy)
                {
                    req.Proxy            = ProxyClient.Parse(ProxySingleManager.GetProxy());
                    req.ReadWriteTimeout = 3000;
                    req.ConnectTimeout   = 3000;
                    req.KeepAliveTimeout = 3000;
                }
            }
        }
Ejemplo n.º 36
0
 public async Task DeleteBet(string id)
 {
     Task <Bet> BetTask = context.LoadAsync <Bet>(id);
     Bet        bet     = await BetTask;
     await context.DeleteAsync(bet);
 }
Ejemplo n.º 37
0
        public async Task <JsonResult> ReceiveReceipt(Receipt1 receipts)
        {
            var bcg     = new BarCodeGenerator();
            var account = await BetDatabase.Accounts.SingleOrDefaultAsync(x => x.UserId == User.Identity.Name);

            var branchId = Convert.ToInt32(account.AdminE);
            var branch   = await BetDatabase.Branches.SingleOrDefaultAsync(x => x.BranchId == branchId);

            var receiptid = bcg.GenerateRandomString(9);
            var receipt   = new Receipt
            {
                UserId        = User.Identity.Name,
                BranchId      = Convert.ToInt16(account.AdminE),
                ReceiptStatus = 0,
                SetNo         = 20141011,
                ReceiptId     = int.Parse(receiptid)
            }; //Start New Reciept

            receipt.ReceiptId = int.Parse(receiptid);
            var    betStake = receipts.TotalStake.ToString(CultureInfo.InvariantCulture);
            string response;
            // BetDatabase.Receipts.Add(receipt);
            // await BetDatabase.SaveChangesAsync();

            var         ttodd        = receipts.TotalOdd;
            const float bettingLimit = 8000000;
            var         cost         = Convert.ToDouble(betStake);

            if ((cost >= 1000) && (cost <= bettingLimit))//betting limit
            {
                foreach (var betData in receipts.BetData)
                {
                    try
                    {
                        var      tempMatchId = Convert.ToInt32(betData.MatchId);
                        var      _matchid    = BetDatabase.ShortMatchCodes.Single(x => x.ShortCode == tempMatchId).MatchNo;
                        Match    _match      = BetDatabase.Matches.Single(h => h.BetServiceMatchNo == _matchid);
                        DateTime _matchTime  = _match.StartTime;
                        DateTime timenow     = DateTime.Now;
                        if (_matchTime < timenow)
                        {
                            response = ("The Match " + tempMatchId + " Has Started");
                            return(new JsonResult {
                                Data = new { message = response }
                            });
                        }
                        var bm = new Bet
                        {
                            BetOptionId = Int32.Parse(betData.OptionId),
                            RecieptId   = receipt.ReceiptId,
                            MatchId     = BetDatabase.ShortMatchCodes.Single(x => x.ShortCode == tempMatchId).MatchNo,
                            BetOdd      = Convert.ToDecimal(betData.Odd),
                        };
                        BetDatabase.Bets.Add(bm);
                        BetDatabase.SaveChanges();
                    }
                    catch (Exception er)
                    {
                        response = (" An error  has occured:" + er.Message);
                        return(new JsonResult {
                            Data = new { message = response }
                        });

                        var msg = er.Message;
                    }
                }
                // Requires Quick Attention

                receipt.TotalOdds     = Convert.ToDouble(ttodd);
                receipt.ReceiptStatus = 1;
                receipt.SetSize       = receipts.ReceiptSize;
                receipt.Stake         = cost;
                receipt.WonSize       = 0;
                receipt.SubmitedSize  = 0;
                receipt.ReceiptDate   = DateTime.Now;
                receipt.Serial        = Int2Guid(receiptid);
                account.DateE         = DateTime.Now;
                // receipt.RecieptID = 34;
                BetDatabase.Entry(receipt).State = EntityState.Modified;
                var statement = new Statement
                {
                    Account        = receipt.UserId,
                    Amount         = receipt.Stake,
                    Controller     = receipt.UserId,
                    StatetmentDate = DateTime.Now,
                    BalBefore      = account.AmountE,
                    BalAfter       = account.AmountE + receipt.Stake,
                    Comment        = "Bet Transaction for Ticket No" + receiptid
                };
                account.AmountE       = account.AmountE + receipt.Stake;
                statement.Transcation = "Teller Bet";
                statement.Method      = "Online";
                statement.Serial      = receiptid;

                branch.Balance = branch.Balance + Convert.ToDecimal(receipt.Stake);
                BetDatabase.Entry(branch).State = EntityState.Modified;
                BetDatabase.Accounts.AddOrUpdate(account);
                BetDatabase.Statements.Add(statement);
                BetDatabase.SaveChanges();
                var barcodeImage = bcg.CreateBarCode(receiptid);
                var tempPath     = Server.MapPath("~/Content/BarCodes/" + receiptid.Trim() + ".png");
                try
                {
                    barcodeImage.Save(tempPath, ImageFormat.Png);
                }
                catch (Exception)
                {
                }
                response = ("Success");
            }
            else if (cost < 1000)
            {
                receipt.ReceiptId = 0;
                response          = ("Minimum betting stake is UGX 1000. Please enter amount more than UGX 1000.");
            }
            else
            {
                receipt.ReceiptId = 0;
                response          = ("Maximum stake is UGX " + bettingLimit + ". Please enter amount less than UGX " + bettingLimit + ".");
            }

            return(new JsonResult {
                Data = new { message = response, ReceiptNumber = receipt.ReceiptId, ReceiptTime = String.Format("{0:dd/MM/yyyy}", DateTime.Now) + " - " + toJavaScriptDate(DateTime.Now), TellerName = account.UserId, BranchName = branch.BranchName, Balance = account.AmountE, Serial = receiptid, FormatedSerial = GetSerialNumber(receiptid) }
            });
        }
Ejemplo n.º 38
0
 private static bool StakeIsHighlyUnusual(Bet unSettledBet, decimal customerAverageBet)
 {
     return(unSettledBet.Stake > 30 * customerAverageBet);
 }
Ejemplo n.º 39
0
        public async Task <List <Bet> > getBetHistory(List <string> betIds)
        {
            List <Bet>             bets        = new List <Bet>();
            List <JsonExchangeBet> betfairBets = new List <JsonExchangeBet>();

            try
            {
                httpClient.DefaultRequestHeaders.Referrer = new Uri("https://myaccount.betfair.com/summary/accountsummary");
                HttpResponseMessage responseMessageActivity = await httpClient.GetAsync("https://myactivity.betfair.com/");

                responseMessageActivity.EnsureSuccessStatusCode();

                httpClient.DefaultRequestHeaders.Remove("Accept");
                httpClient.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "application/json, text/plain, */*");

                string postParam = string.Format("{{\"status\":\"SETTLED\",\"fromRecord\":0,\"pageSize\":100,\"selectedBets\":\"MAIN\",\"state\":\"SETTLED\",\"eventTypeId\":null,\"dateFilter\":null,\"startDate\":\"{0}\",\"endDate\":\"{1}\"}}", Constants.start.ToString("yyyy-MM-dd"), DateTime.UtcNow.ToString("yyyy-MM-dd"));
                httpClient.DefaultRequestHeaders.Referrer = new Uri("https://myactivity.betfair.com/");
                HttpResponseMessage responseMessageBetHistory = await httpClient.PostAsync("https://myactivity.betfair.com/activity/exchange/settled", (HttpContent) new StringContent(postParam, Encoding.UTF8, "application/json"));

                responseMessageBetHistory.EnsureSuccessStatusCode();

                string responseMessageBetHistoryString = await responseMessageBetHistory.Content.ReadAsStringAsync();

                if (string.IsNullOrEmpty(responseMessageBetHistoryString))
                {
                    return(bets);
                }

                JsonExchangeResult result = Newtonsoft.Json.JsonConvert.DeserializeObject <JsonExchangeResult>(responseMessageBetHistoryString);
                if (result != null && result.bets != null && result.bets.Count > 0)
                {
                    betfairBets.AddRange(result.bets);
                }

                postParam = string.Format("{{\"status\":\"OPEN\",\"fromRecord\":0,\"pageSize\":100,\"selectedBets\":\"MAIN\",\"state\":\"MATCHED\",\"firstView\":false,\"dateFilter\":null,\"startDate\":\"{0}\",\"endDate\":\"{1}\"}}", Constants.start.ToString("yyyy-MM-dd"), DateTime.UtcNow.ToString("yyyy-MM-dd"));
                responseMessageBetHistory = await httpClient.PostAsync("https://myactivity.betfair.com/activity/exchange/open", (HttpContent) new StringContent(postParam, Encoding.UTF8, "application/json"));

                responseMessageBetHistory.EnsureSuccessStatusCode();

                responseMessageBetHistoryString = await responseMessageBetHistory.Content.ReadAsStringAsync();

                if (string.IsNullOrEmpty(responseMessageBetHistoryString))
                {
                    return(bets);
                }

                result = Newtonsoft.Json.JsonConvert.DeserializeObject <JsonExchangeResult>(responseMessageBetHistoryString);
                if (result != null && result.bets != null && result.bets.Count > 0)
                {
                    betfairBets.AddRange(result.bets);
                }

                foreach (JsonExchangeBet jsonExchangeBet in betfairBets)
                {
                    if (!betIds.Contains(jsonExchangeBet.betId))
                    {
                        continue;
                    }

                    Bet bet = new Bet();
                    bet.betId = jsonExchangeBet.betId;
                    DateTime now = DateTime.Now;
                    DateTime.TryParse(jsonExchangeBet.placedDate, out now);
                    bet.datetime = now;
                    bet.time     = now.ToString("yyyy-MM-dd HH:mm:ss");
                    bet.match    = jsonExchangeBet.eventDescription;
                    bet.type     = jsonExchangeBet.side;
                    bet.odds     = jsonExchangeBet.odds;
                    bet.stake    = jsonExchangeBet.stake;
                    bet.status   = jsonExchangeBet.status;

                    bets.Add(bet);
                }

                List <Bet> orderedBets = bets.OrderByDescending(o => o.datetime).ToList();

                return(orderedBets);
            }
            catch (Exception e)
            {
                return(bets);
            }
        }
Ejemplo n.º 40
0
        public bool CheckResetPostStats(Bet NewBet, bool win, SessionStats Statsn, SiteStats siteStats)
        {
            bool reset = false;

            if (EnableResetAfterBets && Statsn.Bets % ResetAfterBets == 0)
            {
                reset = true;
            }
            if (EnableUpperLimit && UpperLimitCompare == "Balance" && UpperLimitAction == LimitAction.Reset)
            {
                reset = reset || (siteStats.Balance >= UpperLimit);
            }
            if (EnableLowerLimit && UpperLimitCompare == "Balance" && LowerLimitAction == LimitAction.Reset)
            {
                reset = reset || (siteStats.Balance <= LowerLimit);
            }
            if (EnableUpperLimit && UpperLimitCompare == "Profit" && UpperLimitAction == LimitAction.Reset)
            {
                if (Statsn.PorfitSinceLimitAction >= UpperLimit)
                {
                    reset = true;
                    Statsn.PorfitSinceLimitAction = 0;
                }
            }
            if (EnableLowerLimit && UpperLimitCompare == "Profit" && LowerLimitAction == LimitAction.Reset)
            {
                if (Statsn.PorfitSinceLimitAction >= LowerLimit)
                {
                    reset = true;
                    Statsn.PorfitSinceLimitAction = 0;
                }
            }
            if (win)
            {
                if (EnableResetAfterWinStreak && Statsn.WinStreak % ResetAfterWinStreak == 0)
                {
                    reset = true;
                }
                if (EnableResetAfterBtcStreakWin && Statsn.StreakProfitSinceLastReset >= ResetAfterBtcStreakWin)
                {
                    reset = true;
                    Statsn.StreakProfitSinceLastReset = 0;
                }
                if (EnableResetAfterBtcWin && Statsn.ProfitSinceLastReset >= ResetAfterBtcWin)
                {
                    reset = true;
                    Statsn.ProfitSinceLastReset = 0;
                }
                if (EnableResetAfterWins && Statsn.Wins % ResetAfterWins == 0)
                {
                    reset = true;
                }
                if (EnableResetWinFromMinProfit && Statsn.Profit - Statsn.MinProfitSinceReset >= ResetWinFromMinProfit)
                {
                    Statsn.MinProfitSinceReset = Statsn.Profit;
                    reset = true;
                }
            }
            else
            {
                if (EnableResetAfterLoseStreak && Statsn.LossStreak % ResetAfterLoseStreak == 0)
                {
                    reset = true;
                }
                if (EnableResetAfterBtcStreakLoss && Statsn.StreakLossSinceLastReset <= -ResetAfterBtcStreakLoss)
                {
                    reset = true;
                    Statsn.StreakLossSinceLastReset = 0;
                }
                if (EnableResetAfterBtcLoss && Statsn.ProfitSinceLastReset <= -ResetAfterBtcLoss)
                {
                    reset = true;
                    Statsn.ProfitSinceLastReset = 0;
                }
                if (EnableResetAfterLosses && Statsn.Losses % ResetAfterLosses == 0)
                {
                    reset = true;
                }
                if (EnableResetLossFromMaxProfit && Statsn.MaxProfitSinceReset - Statsn.Profit >= ResetLossFromMaxProfit)
                {
                    Statsn.MaxProfitSinceReset = Statsn.Profit;
                    reset = true;
                }
            }
            return(reset);
        }
Ejemplo n.º 41
0
 private static bool BetHasHighWinAmount(Bet unSettledBet)
 {
     return(unSettledBet.Win >= Constants.highWinAmountThreshHold);
 }
Ejemplo n.º 42
0
 public void Number17BetValue()
 {
     var bet = new Bet(BetType.Number17, 100);
     Assert.AreEqual(17, bet.BetType.NumberBetValue);
 }
Ejemplo n.º 43
0
 public bool CheckResetPreStats(Bet NewBet, bool win, SessionStats Stats, SiteStats siteStats)
 {
     return(false);
 }
Ejemplo n.º 44
0
 private static bool BetHasHighWinAmount(Bet unSettledBet)
 {
     return unSettledBet.Win >= Constants.highWinAmountThreshHold;
 }
Ejemplo n.º 45
0
 public bool CheckStopPreStats(Bet NewBet, bool win, SessionStats Stats, out string reason, SiteStats siteStats)
 {
     reason = "";
     return(false);
 }
Ejemplo n.º 46
0
        private void ComputeStatus(Bet unSettledBet, decimal customerAverageBet)
        {
            if (BetHasHighWinAmount(unSettledBet))
            {
                unSettledBet.Status.HasHighWinAmount = true;
            }

            if (!SettledBets.Any())
            {
                return;
            }

            if (StakeIsHighlyUnusual(unSettledBet, customerAverageBet))
            {
                unSettledBet.Status.IsHighlyUnusual = true;
                return;
            }

            if (StakeIsUnusual(unSettledBet, customerAverageBet))
            {
                unSettledBet.Status.IsUnusual = true;
            }
        }
Ejemplo n.º 47
0
        public void UpdateRoom(Room room)
        {
            try
            {
                if (room == null)
                {
                    return;
                }

                if (room.Players == null)
                {
                    return;
                }

                if (room.GetRoomType() != (int)RoomType.Tag)
                {
                    if (room.Players[0] == null && room.Players[1] == null)
                    {
                        return;
                    }
                }
                else
                {
                    if (room.Players[0] == null && room.Players[1] == null && room.Players[2] == null && room.Players[3] == null)
                    {
                        return;
                    }
                }


                RoomItem item = GetItem(room.Id);

                string players1 = "";
                string players2 = "";
                if (room.GetRoomType() != (int)RoomType.Tag)
                {
                    players1 = room.Players[0] != null ? room.Players[0].Username : "******";
                    players2 = room.Players[1] != null ? room.Players[1].Username : "******";
                }
                else
                {
                    players1  = room.Players[0] != null ? room.Players[0].Username : "******";
                    players1 += " & " + (room.Players[1] != null ? room.Players[1].Username : "******");

                    players2  = room.Players[2] != null ? room.Players[2].Username : "******";
                    players2 += " & " + (room.Players[3] != null ? room.Players[3].Username : "******");
                }

                RoomItem newitem = new RoomItem
                {
                    Id             = room.Id,
                    Players1       = players1,
                    Players2       = players2,
                    Type           = room.Config.Type,
                    Config         = room.Config,
                    NeedPassword   = room.NeedPassword,
                    IsRanked       = room.IsRanked(),
                    CaptionText    = room.Config.CaptionText,
                    IsShadowDuel   = room.IsShadowRoom(),
                    RoomColor      = new SolidColorBrush(Colors.Black),
                    ObserversCount = room.Observers.Count,
                    IsTurboDuel    = room.IsTurboDuel
                };
                if (room.Config.Banlist != 0 || (room.Config.StartDuelLP != 8000 && room.Config.Type != RoomType.Tag) || (room.Config.StartDuelLP != 16000 && room.Config.Type == RoomType.Tag) || room.Config.CardByHand != 5 || room.Config.MasterRules != 5 || room.Config.DrawCount != 1 | room.Config.NoShuffleDeck == true)
                {
                    newitem.RoomColor = new SolidColorBrush(FormExecution.AppDesignConfig.GetGameColor("CustomRoomColor"));
                }
                if (room.IsShadowRoom())
                {
                    Bet bet = null;
                    switch (room.Config.BType)
                    {
                    case BetType.BPs:
                        bet = JsonConvert.DeserializeObject <BPsBet>(room.Config.BetSerealized);
                        break;

                    case BetType.Mute:
                    case BetType.Ban:
                        bet = JsonConvert.DeserializeObject <SanctionBet>(room.Config.BetSerealized);
                        break;
                    }
                    newitem.Bet       = bet;
                    newitem.RoomColor = new SolidColorBrush(FormExecution.AppDesignConfig.GetGameColor("ShadowRoomColor"));
                }
                if (room.IsTurboDuel)
                {
                    newitem.RoomColor = new SolidColorBrush(FormExecution.AppDesignConfig.GetGameColor("TurboDuelRoomColor"));
                }


                if (item == null)
                {
                    AddItem(newitem);
                }
                else
                {
                    try
                    {
                        int index = Itemslist.Items.IndexOf(item);
                        Itemslist.Items.Remove(item);
                        Itemslist.Items.Insert(index, newitem);
                        _rooms[item.Id] = newitem;
                    }
                    catch (Exception ex)
                    {
                        logger.Error(ex.ToString());
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error("UPDATE ROOM ERROR - {0}", ex.ToString());
            }
        }
Ejemplo n.º 48
0
 public void UpdateBet(Bet bet)
 {
     this._betRepository.UpdateBet(bet);
 }
Ejemplo n.º 49
0
        private void RefreshGame()
        {
            try
            {
                //new MathController().SaveMatch(match);
                GameContent.Children.Clear();
                Grid grid = new Grid()
                {
                    VerticalOptions   = LayoutOptions.Start,
                    HorizontalOptions = LayoutOptions.FillAndExpand,
                    RowDefinitions    =
                    {
                        new RowDefinition {
                            Height = GridLength.Auto
                        }
                    },
                    ColumnDefinitions =
                    {
                        new ColumnDefinition {
                            Width = GridLength.Auto
                        },
                        new ColumnDefinition {
                            Width = GridLength.Star
                        }
                    }
                };
                grid.Children.Add(new Label()
                {
                    Text = "Rod.",
                    HorizontalOptions       = LayoutOptions.FillAndExpand,
                    HorizontalTextAlignment = TextAlignment.Center,
                    BackgroundColor         = Color.LightGray
                }, 0, 0);
                for (int c = 1; c <= match.Players.Count; c++)
                {
                    grid.Children.Add(new Label()
                    {
                        Text = match.Players.ElementAt(c - 1).Name,
                        HorizontalOptions       = LayoutOptions.FillAndExpand,
                        HorizontalTextAlignment = TextAlignment.Center,
                        BackgroundColor         = Color.LightGray
                    }, c, 0);
                }
                for (int l = 1; l <= match.Rounds.Count; l++)
                {
                    grid.Children.Add(new Label()
                    {
                        Text = l.ToString(),
                        HorizontalOptions       = LayoutOptions.FillAndExpand,
                        HorizontalTextAlignment = TextAlignment.Center,
                        BackgroundColor         = Color.LightGray
                    }, 0, l);
                    for (int c = 0; c < match.Players.Count; c++)
                    {
                        Bet   b   = match.Rounds.ElementAt(l - 1).Bets.ElementAt(c);
                        Label bet = new Label()
                        {
                            Text = b.Value.ToString(),
                            HorizontalOptions       = LayoutOptions.FillAndExpand,
                            HorizontalTextAlignment = TextAlignment.Center,
                            BackgroundColor         = b.Ok ? Color.LightGreen : Color.LightSalmon
                        };

                        StackLayout cell = new StackLayout()
                        {
                            Orientation = StackOrientation.Horizontal
                        };
                        if (l == match.Rounds.Count)
                        {
                            TapGestureRecognizer tap = new TapGestureRecognizer();
                            tap.Tapped += delegate
                            {
                                b.Ok = !b.Ok;
                                RefreshGame();
                            };
                            cell.GestureRecognizers.Add(tap);
                            cell.Children.Add(bet);
                        }
                        else
                        {
                            cell.Children.Add(bet);
                        }

                        grid.Children.Add(cell, c + 1, l);
                    }
                }
                grid.Children.Add(new Label()
                {
                    Text = "Tot.",
                    HorizontalOptions       = LayoutOptions.FillAndExpand,
                    HorizontalTextAlignment = TextAlignment.Center,
                    BackgroundColor         = Color.LightGray
                }, 0, match.Rounds.Count + 1);
                for (int c = 1; c <= match.Players.Count; c++)
                {
                    grid.Children.Add(new Label()
                    {
                        Text = match.GetPlayerResult(match.Players.ElementAt(c - 1)).ToString(),
                        HorizontalOptions       = LayoutOptions.FillAndExpand,
                        HorizontalTextAlignment = TextAlignment.Center,
                        BackgroundColor         = Color.LightGray,
                        FontAttributes          = FontAttributes.Bold
                    }, c, match.Rounds.Count + 1);
                }
                GameContent.Children.Add(grid);
                StackLayout stackLayout = new StackLayout
                {
                    Orientation = StackOrientation.Horizontal
                };
                if (match.Rounds.Count < 10)
                {
                    Button newRound = new Button()
                    {
                        Text = "Nova rodada",
                        HorizontalOptions = LayoutOptions.FillAndExpand,
                        Margin            = 10
                    };
                    newRound.Clicked += delegate
                    {
                        foreach (var p in match.Players)
                        {
                            p.Score = match.GetPlayerResult(p);
                        }
                        Navigation.PushAsync(new NewRound(match));
                    };
                    GameContent.Children.Add(newRound);
                    Button backRound = new Button()
                    {
                        Text = "Voltar rodada",
                        HorizontalOptions = LayoutOptions.FillAndExpand,
                        Margin            = 10
                    };
                    backRound.Clicked += delegate
                    {
                        Device.BeginInvokeOnMainThread(async() =>
                        {
                            var result = await this.DisplayAlert("Quer mesmo anular a última rodada?", "", "Sim", "Cancelar");
                            if (result)
                            {
                                match.Rounds.RemoveAt(match.Rounds.Count - 1);
                                foreach (var p in match.Players)
                                {
                                    p.Score = match.GetPlayerResult(p);
                                }
                                await Navigation.PushAsync(new NewRound(match));
                            }
                        });
                    };
                    if (match.Rounds.Count > 0)
                    {
                        stackLayout.Children.Add(backRound);
                    }
                }
                else
                {
                    Button endGame = new Button()
                    {
                        Text = "Finalizar partida",
                        HorizontalOptions = LayoutOptions.FillAndExpand,
                        Margin            = 10
                    };
                    endGame.Clicked += delegate
                    {
                        match.Finished = true;
                        List <Player> results = match.GetResults();
                        new ScoreController().SaveScores(results);
                        //new MathController().SaveMatch(match);
                        string message = string.Empty;
                        foreach (var p in results)
                        {
                            message += p.Name + ": " + p.Score + "\n";
                        }

                        DisplayAlert("Parabéns " + results.First().Name, message, "Ok");
                    };
                    GameContent.Children.Add(endGame);
                }
                Button exit = new Button()
                {
                    Text = "Sair do jogo",
                    HorizontalOptions = LayoutOptions.FillAndExpand,
                    Margin            = 10,
                };
                exit.Clicked += delegate
                {
                    OnBackButtonPressed();
                };
                stackLayout.Children.Add(exit);
                GameContent.Children.Add(stackLayout);
            }
            catch (Exception e)
            {
                GameContent.Children.Add(new Label()
                {
                    Text = e.Message
                });
            }
        }
Ejemplo n.º 50
0
 public void Number0BetColor()
 {
     var bet = new Bet(BetType.Zero, 100);
     Assert.AreEqual(RouletteColors.Green, bet.BetType.RouletteColor);
     Assert.AreEqual(0, bet.BetType.NumberBetValue);
 }
Ejemplo n.º 51
0
 /// <summary>
 /// Allows a gambler to place a bet, will return a string of the message sent back from the bookie
 /// </summary>
 /// <param name="b">The bet to place against the bookie</param>
 /// <returns>The message returned by the bookie server</returns>
 public string placeBet(Bet b)
 {
     object[] parameter = new object[] {
         _gambler.ID,
         b.MatchID,
         b.TeamID,
         b.Odds,
         b.Stake
     };
     string messageID = this._gambler.getNextMessageID();
     JsonResponse response = handleJsonRpcRequest("placeBet", parameter, messageID);
     while (response == null || response.Result.ToString().Equals(PlaceBetResult.LOST_CONNECTION.ToString()))
     {
         //Will rety up to 3 times (As set in _maxRetries). We don't mind sending a duplicate message, as the bookie will handle it and reply back with the previous response
         if (_retry > _maxRetries)
             return PlaceBetResult.LOST_CONNECTION.ToString();
         _retry++;
         //Sleep for 10 seconds so we can do initial test scenario
         //Other wise we can't test another user beating this gambler to the punch of creating a bet
         Thread.Sleep(10000);
         response = handleJsonRpcRequest("placeBet", parameter, messageID);
     }
     return response.Result.ToString();
 }
Ejemplo n.º 52
0
        protected double SpinRouletteWithExceptionHandling(RouletteGame rouletteGame, Bet bet)
        {
            double result = 0.0;

            try
            {
                result    = rouletteGame.PlaceBetAndSpin(bet);
                WPrevious = W;
            }
            catch (ArgumentException)
            {
                bet.Amount = WPrevious;
                result     = rouletteGame.PlaceBetAndSpin(bet);

                W = WPrevious;
            }

            return(result);
        }
Ejemplo n.º 53
0
 private static bool StakeIsUnusual(Bet unSettledBet, decimal customerAverageBet)
 {
     return unSettledBet.Stake > 10*customerAverageBet;
 }
Ejemplo n.º 54
0
 public void Initialize()
 {
     _bet         = new Bet();
     _contestMock = new Mock <Contest>();
 }
Ejemplo n.º 55
0
        public virtual void ReadXML()
        {
            string urlPathSport = string.Empty;
            string urlPathLeague = string.Empty;
            string urlPathFeed = string.Empty;

            urlPathSport = Constant.SourceXML.PINNACLESPORTSURL;
            if (urlPathSport.IndexOf("http://") > -1)
            {
                urlPathLeague = Constant.SourceXML.PINNACLELEAGUEURL;
                urlPathFeed = Constant.SourceXML.PINNACLEFEEDURL;
            }
            else
            {
                string[] arrPlitUrl = urlPathSport.Split('_');
                string timetick = arrPlitUrl[2].Replace(".xml", "");
                urlPathLeague = arrPlitUrl[0] + "_league_{0}_"+timetick+".xml";
                urlPathFeed = arrPlitUrl[0] + "_feed_{0}_{1}_" + timetick + ".xml";
            }

            _lstSport = new List<Sport>();
            _lstEvent = new List<Event>();
            _lstMatch = new List<Match>();
            _lstBet = new List<Bet>();
            _lstChoice = new List<Choice>();
            //sport
            XmlTextReader readerSport = new XmlTextReader(urlPathSport);
            // Skip non-significant whitespace
            readerSport.WhitespaceHandling = WhitespaceHandling.Significant;
            XPathDocument doc = new XPathDocument(readerSport, XmlSpace.Preserve);
            XPathNavigator nav = doc.CreateNavigator();

            XPathExpression exprSport;
            exprSport = nav.Compile("/rsp/sports/sport");
            XPathNodeIterator iteratorSport = nav.Select(exprSport);
            try
            {
                int _sportId = 0;
                int _eventId = 0;
                long _matchId = 0;
                long _betId = 0;
                long _choiceId = 0;

                while (iteratorSport.MoveNext())
                {
                    XPathNavigator _sportNameNavigator = iteratorSport.Current.Clone();
                    int feedContentSport = Convert.ToInt32(_sportNameNavigator.GetAttribute("feedContents", ""));
                    if (feedContentSport > 0)
                    {
                        _sportId = Convert.ToInt32(_sportNameNavigator.GetAttribute("id", ""));
                        Sport _sport = new Sport();
                        _sport.sportId = Convert.ToInt32(_sportNameNavigator.GetAttribute("id", ""));
                        _sport.sportName = _sportNameNavigator.Value;
                        _lstSport.Add(_sport);
                        //league- event
                        XmlTextReader readerLeague = new XmlTextReader(string.Format(urlPathLeague, _sportId));
                        readerLeague.WhitespaceHandling = WhitespaceHandling.Significant;
                        XPathDocument docLeague = new XPathDocument(readerLeague, XmlSpace.Preserve);
                        XPathNavigator navLeague = docLeague.CreateNavigator();

                        XPathExpression exprLeague;
                        exprLeague = navLeague.Compile("/rsp/leagues/league");
                        XPathNodeIterator iteratorLeague = navLeague.Select(exprLeague);

                        while (iteratorLeague.MoveNext())
                        {
                            XPathNavigator _eventNameNavigator = iteratorLeague.Current.Clone();
                            int feedContentLeague = Convert.ToInt32(_sportNameNavigator.GetAttribute("feedContents", ""));
                            if (feedContentLeague > 0)
                            {
                                Event _event = new Event();
                                _eventId = Convert.ToInt32(_eventNameNavigator.GetAttribute("id", ""));
                                _event.eventId = _eventId;
                                _event.sportId = _sportId;
                                _event.eventName = _eventNameNavigator.Value;
                                _lstEvent.Add(_event);
                                //match - home team - awayteam
                                XmlTextReader readerMatch = new XmlTextReader(string.Format(urlPathFeed, _sportId, _eventId));
                                readerMatch.WhitespaceHandling = WhitespaceHandling.Significant;
                                XPathDocument docMatch = new XPathDocument(readerMatch, XmlSpace.Preserve);
                                XPathNavigator navMatch = docMatch.CreateNavigator();

                                XPathExpression exprematch;
                                exprematch = navMatch.Compile("/rsp/fd/sports/sport/leagues/league");
                                XPathNodeIterator iteratorMatch = navMatch.Select(exprematch);
                                while (iteratorMatch.MoveNext())
                                {
                                    XPathNavigator _matchNameNavigator = iteratorMatch.Current.Clone();

                                    XPathExpression exprematchEvent;
                                    exprematchEvent = _matchNameNavigator.Compile("events/event");
                                    XPathNodeIterator iteratorMatchEvent = _matchNameNavigator.Select(exprematchEvent);
                                    while (iteratorMatchEvent.MoveNext())
                                    {
                                        _matchId++;
                                        XPathNavigator _matchEventNameNavigator = iteratorMatchEvent.Current.Clone();
                                        Match _match = new Match();
                                        _match.matchId = _matchId;
                                        _match.eventId = _eventId;
                                        //_match.nameMatch = _matchNameNavigator.GetAttribute("name", "");
                                        _match.homeTeam = _matchEventNameNavigator.SelectSingleNode("homeTeam").SelectSingleNode("name").Value;
                                        _match.awayTeam = _matchEventNameNavigator.SelectSingleNode("awayTeam").SelectSingleNode("name").Value;
                                        _match.startTime = Convert.ToDateTime(_matchEventNameNavigator.SelectSingleNode("startDateTime").Value);
                                        _lstMatch.Add(_match);

                                        if (_matchEventNameNavigator.HasChildren)
                                        {
                                            XPathExpression exprebet;
                                            exprebet = _matchEventNameNavigator.Compile("periods/period");
                                            XPathNodeIterator iteratorBet = _matchEventNameNavigator.Select(exprebet);
                                            while (iteratorBet.MoveNext())
                                            {
                                                _betId++;
                                                XPathNavigator _betNameNavigator = iteratorBet.Current.Clone();
                                                Bet _bet = new Bet();
                                                _bet.betId = _betId;
                                                _bet.matchId = _matchId;
                                                _bet.betName = _betNameNavigator.SelectSingleNode("description").Value;
                                                _bet.betCodeID = _bet.betName;
                                                _lstBet.Add(_bet);

                                                //handicap
                                                XPathExpression exprehandicap;
                                                exprehandicap = _matchEventNameNavigator.Compile("spreads/spread");
                                                XPathNodeIterator iteratorHandicap = _matchEventNameNavigator.Select(exprehandicap);
                                                //total
                                                XPathExpression expretotal;
                                                expretotal = _matchEventNameNavigator.Compile("totals/total");
                                                XPathNodeIterator iteratorTotal = _matchEventNameNavigator.Select(expretotal);
                                                //moneyline
                                                XPathExpression expremoneyline;
                                                expremoneyline = _matchEventNameNavigator.Compile("moneyLine");
                                                XPathNodeIterator iteratorMoneyLine = _matchEventNameNavigator.Select(expremoneyline);

                                                while (iteratorHandicap.MoveNext())
                                                {
                                                    _choiceId++;
                                                    XPathNavigator _choiceNameNavigator = iteratorHandicap.Current.Clone();
                                                    Choice _choice = new Choice();
                                                    _choice.choiceId = _choiceId;
                                                    _choice.betId = _betId;
                                                    _choice.choiceCodeId = (long)Constant.ChoiceType.HANDICAP;
                                                    _choice.choiceCodeName = "HANDICAP";
                                                    _choice.choiceName = "spread";
                                                    _choice.awaySpread = _choiceNameNavigator.SelectSingleNode("awaySpread").Value;
                                                    _choice.awayPrice = _choiceNameNavigator.SelectSingleNode("awayPrice").Value;
                                                    _choice.homeSpread = _choiceNameNavigator.SelectSingleNode("homeSpread").Value;
                                                    _choice.homePrice = _choiceNameNavigator.SelectSingleNode("homePrice").Value;
                                                    _lstChoice.Add(_choice);
                                                }

                                                while (iteratorTotal.MoveNext())
                                                {
                                                    _choiceId++;
                                                    XPathNavigator _choiceNameNavigator = iteratorTotal.Current.Clone();
                                                    Choice _choice = new Choice();
                                                    _choice.choiceId = _choiceId;
                                                    _choice.betId = _betId;
                                                    _choice.choiceCodeId = (long)Constant.ChoiceType.TOTAL;
                                                    _choice.choiceCodeName = "TOTAL";
                                                    _choice.choiceName = "total";
                                                    _choice.points = _choiceNameNavigator.SelectSingleNode("points").Value;
                                                    _choice.overPrice = _choiceNameNavigator.SelectSingleNode("overPrice").Value;
                                                    _choice.underPrice = _choiceNameNavigator.SelectSingleNode("underPrice").Value;
                                                    _lstChoice.Add(_choice);
                                                }

                                                while (iteratorMoneyLine.MoveNext())
                                                {
                                                    _choiceId++;
                                                    XPathNavigator _choiceNameNavigator = iteratorMoneyLine.Current.Clone();
                                                    Choice _choice = new Choice();
                                                    _choice.choiceId = _choiceId;
                                                    _choice.betId = _betId;
                                                    _choice.choiceCodeId = (long)Constant.ChoiceType.MONEY_LINE;
                                                    _choice.choiceCodeName = "MONEY_LINE";
                                                    _choice.choiceName = "moneyLine";
                                                    _choice.awayPrice = _choiceNameNavigator.SelectSingleNode("awayPrice").Value;
                                                    _choice.homePrice = _choiceNameNavigator.SelectSingleNode("homePrice").Value;
                                                    _choice.drawPrice = _choiceNameNavigator.SelectSingleNode("drawPrice").Value;
                                                    _lstChoice.Add(_choice);
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                //throw new Exception(ex.Message);
            }
        }
Ejemplo n.º 56
0
 public void TearDown()
 {
     _bet = null;
 }
Ejemplo n.º 57
0
 public void SaveBet(Bet bet)
 {
     this._betRepository.SaveBet(bet);
 }
Ejemplo n.º 58
0
        protected void gvMatch_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                //Match m = e.Row.DataItem as Match;
                var drv = e.Row.DataItem as DataRowView;

                if (drv != null)
                {
                    var m = new Match((Guid)drv["MatchGuid"]);

                    var matchResult  = e.Row.FindControl("ltrlMatchResult") as Literal;
                    var btnCalcBonus = e.Row.FindControl("btnCalcBonus") as LinkButton;
                    var btnReturnBet = e.Row.FindControl("btnReturnBet") as LinkButton;
                    var lblBonus     = e.Row.FindControl("lblBonus") as Label;
                    var tbPlayTime   = e.Row.FindControl("tbPlayTime") as TextBox;
                    var tbRound      = e.Row.FindControl("tbRound") as TextBox;
                    var tbHome       = e.Row.FindControl("tbHome") as TextBox;
                    var tbAway       = e.Row.FindControl("tbAway") as TextBox;

                    if (tbPlayTime != null)
                    {
                        tbPlayTime.Text = m.PlayTime.ToString("yyyy-MM-dd HH:mm");
                    }

                    if (tbRound != null)
                    {
                        tbRound.Text = m.Round.ToString();
                    }

                    if (tbHome != null && tbAway != null && m.ResultHome.HasValue && m.ResultAway.HasValue)
                    {
                        tbHome.Text = m.ResultHome.ToString();
                        tbAway.Text = m.ResultAway.ToString();
                    }

                    if (btnCalcBonus != null && btnReturnBet != null && lblBonus != null)
                    {
                        if (matchResult != null && m.ResultHome.HasValue && m.ResultAway.HasValue)
                        {
                            matchResult.Text = $"{m.ResultHome}:{m.ResultAway}";

                            var matchGuid = m.MatchGuid;

                            var itemGuid = CasinoItem.GetCasinoItemGuidByMatch(matchGuid, CasinoType.SingleChoice);

                            if (itemGuid.HasValue)
                            {
                                var item = CasinoItem.GetCasinoItem(itemGuid.Value);

                                if (item.Earning.HasValue)
                                {
                                    //hide button calc bonus
                                    btnCalcBonus.Visible = false;
                                    btnReturnBet.Visible = false;
                                    lblBonus.Text        = item.Earning.Value.ToString("N2");
                                    lblBonus.Visible     = true;
                                }
                                else
                                {
                                    //show button calc bonus
                                    btnCalcBonus.Visible = true;
                                    btnReturnBet.Visible = false;
                                    lblBonus.Visible     = false;

                                    //set button command argument
                                    btnCalcBonus.CommandArgument = m.MatchGuid.ToString();
                                }
                            }
                        }
                        else
                        {
                            var betList = Bet.GetMatchAllBet(m.MatchGuid);

                            var betCount = 0;
                            if (betList != null && betList.Count > 0)
                            {
                                betCount = betList.Count;
                            }

                            btnReturnBet.Text    = $"退还:{betCount}注";
                            btnReturnBet.Visible = true;

                            btnCalcBonus.Visible = false;
                            lblBonus.Visible     = false;

                            btnReturnBet.CommandArgument = m.MatchGuid.ToString();

                            if (betCount <= 0)
                            {
                                btnReturnBet.Enabled = false;
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 59
0
        public virtual void ReadXML()
        {
            string urlPath = Constant.SourceXML.BETCLICKURL;
            _lstSport = new List<Sport>();
            _lstEvent = new List<Event>();
            _lstMatch = new List<Match>();
            _lstBet = new List<Bet>();
            _lstChoice = new List<Choice>();

            XmlTextReader reader = new XmlTextReader(urlPath);
            // Skip non-significant whitespace
            reader.WhitespaceHandling = WhitespaceHandling.Significant;
            XPathDocument doc = new XPathDocument(reader, XmlSpace.Preserve);
            XPathNavigator nav = doc.CreateNavigator();

            XPathExpression exprSport;
            exprSport = nav.Compile("/sports/sport");
            XPathNodeIterator iteratorSport = nav.Select(exprSport);
            try
            {
                int _sportId = 0;
                int _eventId = 0;
                long _matchId = 0;
                long _betId = 0;
                long _choiceId = 0;

                while (iteratorSport.MoveNext())
                {
                    _sportId++;
                    XPathNavigator _sportNameNavigator = iteratorSport.Current.Clone();
                    Sport _sport = new Sport();
                    _sport.sportId = _sportId;
                    _sport.sportName = _sportNameNavigator.GetAttribute("name", "");
                    _lstSport.Add(_sport);

                    if (_sportNameNavigator.HasChildren)
                    {
                        XPathExpression exprevent;
                        exprevent = _sportNameNavigator.Compile("event");
                        XPathNodeIterator iteratorEvent = _sportNameNavigator.Select(exprevent);
                        while (iteratorEvent.MoveNext())
                        {
                            _eventId++;
                            XPathNavigator _eventNameNavigator = iteratorEvent.Current.Clone();
                            Event _event = new Event();
                            _event.eventId = _eventId;
                            _event.sportId = _sportId;
                            _event.eventName = _eventNameNavigator.GetAttribute("name", "");
                            _lstEvent.Add(_event);

                            if (_eventNameNavigator.HasChildren)
                            {
                                XPathExpression exprematch;
                                exprematch = _eventNameNavigator.Compile("match");
                                XPathNodeIterator iteratorMatch = _eventNameNavigator.Select(exprematch);
                                while (iteratorMatch.MoveNext())
                                {
                                    _matchId++;
                                    XPathNavigator _matchNameNavigator = iteratorMatch.Current.Clone();
                                    Match _match = new Match();
                                    _match.matchId = _matchId;
                                    _match.eventId = _eventId;
                                    string[] league = _matchNameNavigator.GetAttribute("name", "").Split('-');
                                    if (league.Length > 1)
                                    {
                                        _match.homeTeam = league[0].Trim();
                                        _match.awayTeam = league[1].Trim();
                                    }
                                    else
                                    {
                                        _match.homeTeam = _matchNameNavigator.GetAttribute("name", "");
                                    }
                                    _match.startTime = Convert.ToDateTime(_matchNameNavigator.GetAttribute("start_date", ""));
                                    _lstMatch.Add(_match);

                                    if (_matchNameNavigator.HasChildren)
                                    {
                                        XPathExpression exprebet;
                                        exprebet = _matchNameNavigator.Compile("bets/bet");
                                        XPathNodeIterator iteratorBet = _matchNameNavigator.Select(exprebet);
                                        while (iteratorBet.MoveNext())
                                        {
                                            _betId++;
                                            XPathNavigator _betNameNavigator = iteratorBet.Current.Clone();
                                            Bet _bet = new Bet();
                                            _bet.betId = _betId;
                                            _bet.matchId = _matchId;
                                            _bet.betName = _betNameNavigator.GetAttribute("name", "");
                                            _bet.betCodeID = _betNameNavigator.GetAttribute("code", "");
                                            _lstBet.Add(_bet);

                                            if (_betNameNavigator.HasChildren)
                                            {
                                                XPathExpression exprechoice;
                                                exprechoice = _betNameNavigator.Compile("choice");
                                                XPathNodeIterator iteratorChoice = _betNameNavigator.Select(exprechoice);
                                                while (iteratorChoice.MoveNext())
                                                {
                                                    _choiceId++;
                                                    XPathNavigator _choiceNameNavigator = iteratorChoice.Current.Clone();
                                                    Choice _choice = new Choice();
                                                    _choice.choiceId = _choiceId;
                                                    _choice.betId = _betId;
                                                    _choice.choiceName = _choiceNameNavigator.GetAttribute("name", "");
                                                    _choice.odd = _choiceNameNavigator.GetAttribute("odd", "");
                                                    _lstChoice.Add(_choice);
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        private List <Fork> CheckMain(Bet one, Bet two)
        {
            List <Fork> rezult = new List <Fork>();

            if (one.Bookmaker == two.Bookmaker)
            {
                return(rezult);
            }


            if (_bd == null)
            {
                _bd = new UnicDataDecorator(UnicData.Load("bd.data"));
                UnicDataDecorator.UpdateBase += UnicDataDecorator_UpdateBase;
            }

            //if (one.Team1Id == -2)
            //    one.Team1Id = _bd.GetNumber(one.Team1);
            if (one.Team1Id == -1)
            {
                return(rezult);
            }

            //if (one.Team2Id == -2)
            //    one.Team2Id = _bd.GetNumber(one.Team2);
            if (one.Team2Id == -1)
            {
                return(rezult);
            }

            //if (two.Team1Id == -2)
            //    two.Team1Id = _bd.GetNumber(two.Team1);
            if (two.Team1Id == -1)
            {
                return(rezult);
            }

            //if (two.Team2Id == -2)
            //    two.Team2Id = _bd.GetNumber(two.Team2);
            if (two.Team2Id == -1)
            {
                return(rezult);
            }

            if (one.Team1Id != two.Team1Id)
            {
                return(rezult);
            }
            if (one.Team2Id != two.Team2Id)
            {
                return(rezult);
            }

            _betCheck++;
            rezult.AddRange(Check(one, two));
            foreach (var key in one.Parts)
            {
                if (two.Parts.ContainsKey(key.Key))
                {
                    rezult.AddRange(Check(one.Parts[key.Key], two.Parts[key.Key]));
                }
            }
            return(rezult);
        }