public BetTreeNodeModel AddChild(BetTreeModel tree, BetTreeNodeModel parent) { HoldemHandRound round = parent.Snapshot.NextPlayer == null ? (HoldemHandRound)((int)parent.Snapshot.Round) + 1 : parent.Snapshot.Round; int? player = parent.Snapshot.NextPlayer == null ? parent.Snapshot.GetNextRoundStart() : parent.Snapshot.NextPlayer; BetTreeNodeModel model; switch (round) { case HoldemHandRound.PreFlop: model = AddPreflopStandard(parent, round, (int)player); break; case HoldemHandRound.Flop: case HoldemHandRound.Turn: case HoldemHandRound.River: model = AddPostflopStandard(parent, round, (int)player); break; default: model = AddShowdownStandard(parent); break; } parent.AddChild(model); model.AddNode += tree.OnAddNode; model.EditNode += tree.OnEditNode; model.DeleteNode += tree.OnDeleteNode; model.ShowWizard += tree.OnShowWizard; return model; }
protected void AddEndPoint(BetTreeNodeModel parent) { BetTreeNodeDisplay display = null; ObservableCollection<BetTreeDataNodeMeta> metaList = new ObservableCollection<BetTreeDataNodeMeta>(); if (parent.Snapshot.NumPlayersInHand <= 1) { metaList.Add(new BetTreeDataNodeMeta(RESULT_NODE_META, new ResultsModel(parent.Snapshot))); display = _nodeStyles[typeof(ResultsModel)]; } else { metaList.Add(new BetTreeDataNodeMeta("Showdown", new ShowdownModel(parent.Snapshot))); display = _nodeStyles[typeof(ShowdownModel)]; } BetTreeNodeModel model = new BetTreeNodeModel(parent.Tree, display, this._resultsStyle, parent.Snapshot, parent, true); model.AllowedNodeTypes = metaList; model.Meta = metaList.First().Name; parent.AddChild(model); }