Esempio n. 1
0
        protected void UpdateResult()
        {
            if (_lastResult != null)
            {
                ResultsHeight = new GridLength(0, GridUnitType.Star);
                if (DisplayResultsIndex >= 0)
                    ExpectedValue = String.Format("{0:N2}", _lastResult.WinAmounts[DisplayResultsIndex]);
                if (_lastParentResult != null && _lastParentResult.Count > 0)
                {
                    PathPercentage = String.Format("{0:N1}", (float)(_lastResult.Count * 100) / (float)_lastParentResult.Count) + "%";
                    TotalPathPercentage = String.Format("{0:N1}", (float)(_lastResult.Count * 100) / (float)_lastResult.TotalCount) + "%";
                }
            }

            if (this.Parent.Meta == BetTreeNodeService.RESULT_NODE_META && (!Manual || PlayerResults == null))
            {
                ObservableCollection<BetTreeNodePlayerInfoModel> players = new ObservableCollection<BetTreeNodePlayerInfoModel>();
                for (int i = 0; i < Parent.Snapshot.Bets.Length; i++)
                {
                    if (!Parent.Tree.Table.Seats[i].Player.Active) continue;

                    float max = Parent.Snapshot.Bets.Max();
                    int maxCount = Parent.Snapshot.Bets.Count(x => x == max);

                    if (Parent.Snapshot.Bets[i] < max)
                    {
                        BetTreeNodePlayerInfoModel info = new BetTreeNodePlayerInfoModel()
                        {
                            PlayerName = Parent.Tree.Table.Seats[i].Player.Name,
                            PlayerStack = Parent.Tree.Table.Seats[i].Player.Stack,
                            PlayerBet = Parent.Snapshot.Bets[i],
                            ExpectedValue = -Parent.Snapshot.Bets[i]
                        };
                        players.Add(info);
                    }
                    else
                    {
                        BetTreeNodePlayerInfoModel info = new BetTreeNodePlayerInfoModel()
                        {
                            PlayerName = Parent.Tree.Table.Seats[i].Player.Name,
                            PlayerStack = Parent.Tree.Table.Seats[i].Player.Stack,
                            PlayerBet = Parent.Snapshot.Bets[i],
                            ExpectedValue = (Parent.Snapshot.Bets.Sum() / maxCount) - Parent.Snapshot.Bets[i]
                        };
                        players.Add(info);
                    }
                }
                PlayerResults = players;
            }
            else if (!Manual && _lastResult != null)
            {
                ObservableCollection<BetTreeNodePlayerInfoModel> players = new ObservableCollection<BetTreeNodePlayerInfoModel>();
                for (int i = 0; i < _lastResult.WinAmounts.Length; i++)
                {
                    if (!Parent.Tree.Table.Seats[i].Player.Active) continue;

                    BetTreeNodePlayerInfoModel info = new BetTreeNodePlayerInfoModel()
                    {
                        PlayerName = Parent.Tree.Table.Seats[i].Player.Name,
                        PlayerStack = Parent.Tree.Table.Seats[i].Player.Stack,
                        PlayerBet = Parent.Snapshot.Bets[i],
                        ExpectedValue = _lastResult.WinAmounts[i]
                    };
                    players.Add(info);
                }
                PlayerResults = players;
            }
        }
Esempio n. 2
0
 public void LoadFromXml(BetTreeInfoXml xml)
 {
     if (xml != null && xml.Players != null)
     {
         ObservableCollection<BetTreeNodePlayerInfoModel> players = new ObservableCollection<BetTreeNodePlayerInfoModel>();
         foreach (BetTreePlayerInfoXml playerXml in xml.Players)
         {
             BetTreeNodePlayerInfoModel model = new BetTreeNodePlayerInfoModel();
             model.LoadFromXml(playerXml);
             players.Add(model);
         }
         PlayerResults = players;
     }
 }