B2017-081: crash on insert of supplemental information (cached item was of wrong type)

This commit is contained in:
Kathy Ruffing 2017-05-04 14:10:23 +00:00
parent 9e93a16c7b
commit 944cd18c6b

View File

@ -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