public PriorityItem GetPriorityItem(int itemIndex) { var item = PriorityList[itemIndex]; var hasPrereq = PrereqMakeOrders.Any(p => p.MasterID == item.Item.MasterID); if (hasPrereq) { var prereq = PrereqMakeOrders.FirstOrDefault(p => p.MasterID == item.Item.MasterID); if (prereq != null) { var make = prereq.GetLowestRequirement(); var master = StaticInventoryTracker.ProductMasterList.FirstOrDefault(m => m.MasterID == make.MasterID); return(new PriorityItem(master, item.Priority)); } return(new PriorityItem(item.Item, item.Priority)); } return(item); }