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