/// <summary> /// This method creates the crumbtrail for a given item /// </summary> /// <param name="reader">The DnaDataReader that contains the crumbtrail result set.</param> static public CrumbTrails GetCrumbtrailForItem(IDnaDataReader reader) { CrumbTrails crumbTrialList = new CrumbTrails(); bool startOfTrail = true; CrumbTrail crumbTrail = null; while (reader.Read()) { // Check to see if we're at the top level int treeLevel = reader.GetInt32("TreeLevel"); if (treeLevel == 0) { startOfTrail = true; } // Check to see if we're starting a new trail if (startOfTrail) { if (crumbTrail != null) {//add the previous to the list crumbTrialList.CrumbTrail.Add(crumbTrail); } //start new crumbTrail = new CrumbTrail(); startOfTrail = false; } CrumbTrailAncestor ancestor = new CrumbTrailAncestor(); ancestor.Name = reader.GetString("DisplayName"); ancestor.NodeId = reader.GetInt32("NodeID"); ancestor.TreeLevel = treeLevel; ancestor.NodeType = reader.GetInt32("Type"); if (reader.Exists("RedirectNodeID") && !reader.IsDBNull("RedirectNodeID")) { ancestor.RedirectNode = new CrumbTrialAncestorRedirect(); ancestor.RedirectNode.id = reader.GetInt32("RedirectNodeID"); ancestor.RedirectNode.value = reader.GetString("RedirectNodeName"); } crumbTrail.Ancestor.Add(ancestor); } if (crumbTrail != null) {//add the previous to the list crumbTrialList.CrumbTrail.Add(crumbTrail); } return crumbTrialList; }
public static CrumbTrails CreateCrumbTrails() { CrumbTrails target = new CrumbTrails(); target.CrumbTrail.Add(new CrumbTrail()); target.CrumbTrail.Add(new CrumbTrail()); target.CrumbTrail[0].Ancestor.Add(CrumbTrailsTest.CreateCrumbTrailAncestor()); target.CrumbTrail[0].Ancestor.Add(CrumbTrailsTest.CreateCrumbTrailAncestor()); target.CrumbTrail[1].Ancestor.Add(CrumbTrailsTest.CreateCrumbTrailAncestor()); target.CrumbTrail[1].Ancestor.Add(CrumbTrailsTest.CreateCrumbTrailAncestor()); return target; }