diff --git a/PROMS/Volian.Controls.Library/MostRecentItem.cs b/PROMS/Volian.Controls.Library/MostRecentItem.cs index bc77ab57..8b64c8fc 100644 --- a/PROMS/Volian.Controls.Library/MostRecentItem.cs +++ b/PROMS/Volian.Controls.Library/MostRecentItem.cs @@ -194,11 +194,21 @@ namespace Volian.Controls.Library { return string.Format("{0}~{1}~{2}", _ItemID, MenuTitle, ToolTip); } + private static ItemInfo GetCorrectItemInfoType(int itemId) + { + using (ItemInfo itm = ItemInfo.Get(itemId)) + { + if (itm.IsProcedure) return ProcedureInfo.Get(itemId); + if (itm.IsSection) return SectionInfo.Get(itemId); + if (itm.IsStep) return StepInfo.Get(itemId); + } + return ItemInfo.Get(itemId); + } public static MostRecentItem ParseString(string str) { string[] parts = str.Split("~".ToCharArray()); int itemID = int.Parse(parts[0]); - ItemInfo item = ItemInfo.Get(itemID); + ItemInfo item = GetCorrectItemInfoType(itemID); if (item == null) return null; if (parts.Length > 1 && parts[1] != item.Path && !RetainBadMRIs()) return null; // Path doesn't match