public bool IsTagged(TreeNode node, RunnerReply runner) { if (node.Tag == null) { return(false); } if (!(node.Tag is RunnerReply tag)) { return(false); } return(tag.MeetingNumber == runner.MeetingNumber && tag.RaceNumber == runner.RaceNumber && tag.RunnerNumber == runner.RunnerNumber); }
public TreeNode GetNode(RunnerReply tag, TreeNode rootNode) { foreach (TreeNode node in rootNode.Nodes) { if (IsTagged(node, tag)) { return(node); } //recursion var next = GetNode(tag, node); if (next != null) { return(next); } } return(null); }
private void UpdateRacecardTree(RunnerReply runner) { if (racecardTreeView.InvokeRequired) { Invoke(new Action(() => UpdateRacecardTree(runner))); return; } var node = GetNode(runner); if (node != null) { var txt = $"{runner.RunnerNumber}. {runner.RunnerName.Replace("\0", string.Empty)}"; if (runner.IsScratched) { txt += " [SCR]"; } node.Text = txt; } }
public TreeNode GetNode(RunnerReply tag) { TreeNode itemNode = null; foreach (TreeNode node in racecardTreeView.Nodes) { if (IsTagged(node, tag)) { return(node); } itemNode = GetNode(tag, node); if (itemNode != null) { break; } } return(itemNode); }