also show related tasks for Instance ; i.e., all instances regardless of parent class

This commit is contained in:
Michael Becker 2024-12-21 00:29:48 -05:00
parent d4b41e14ff
commit f30c87dc8f

View File

@ -46,19 +46,14 @@ public class InstancePreviewCommand : InstanceCommand
Dictionary<string, List<RelatedTask>> relatedTasks = new Dictionary<string, List<RelatedTask>>(); Dictionary<string, List<RelatedTask>> relatedTasks = new Dictionary<string, List<RelatedTask>>();
InstanceHandle parentClass = oms.GetParentClass(ProcessingInstance); InstanceHandle parentClass = oms.GetParentClass(ProcessingInstance);
InstanceHandle c_Instance = oms.GetInstance(KnownInstanceGuids.Classes.Instance);
IEnumerable<InstanceHandle> relatedTasksINSTANCE = oms.GetRelatedInstances(c_Instance, oms.GetInstance(KnownRelationshipGuids.Class__has_related__Task));
IEnumerable<InstanceHandle> relatedTasksIH = oms.GetRelatedInstances(parentClass, oms.GetInstance(KnownRelationshipGuids.Class__has_related__Task)); IEnumerable<InstanceHandle> relatedTasksIH = oms.GetRelatedInstances(parentClass, oms.GetInstance(KnownRelationshipGuids.Class__has_related__Task));
foreach (InstanceHandle ih in relatedTasksIH) AddRelatedTasks(oms, relatedTasks, relatedTasksINSTANCE);
{ AddRelatedTasks(oms, relatedTasks, relatedTasksIH);
InstanceHandle taskCategory = oms.GetRelatedInstance(ih, oms.GetInstance(KnownRelationshipGuids.Task__has__Task_Category));
string categoryTitle = oms.GetInstanceText(taskCategory);
if (!relatedTasks.ContainsKey(categoryTitle))
{
relatedTasks[categoryTitle] = new List<RelatedTask>();
}
relatedTasks[categoryTitle].Add(new RelatedTask() { InstanceKey = oms.GetInstanceKey(ih), Label = oms.GetInstanceText(ih) });
}
/* /*
relatedTasks["Preferences"] = new List<RelatedTask>(); relatedTasks["Preferences"] = new List<RelatedTask>();
@ -131,5 +126,18 @@ public class InstancePreviewCommand : InstanceCommand
sw.Write(obj.ToJsonString()); sw.Write(obj.ToJsonString());
} }
private void AddRelatedTasks(Oms oms, Dictionary<string, List<RelatedTask>> relatedTasks, IEnumerable<InstanceHandle> relatedTasksIH)
{
foreach (InstanceHandle ih in relatedTasksIH)
{
InstanceHandle taskCategory = oms.GetRelatedInstance(ih, oms.GetInstance(KnownRelationshipGuids.Task__has__Task_Category));
string categoryTitle = oms.GetInstanceText(taskCategory);
if (!relatedTasks.ContainsKey(categoryTitle))
{
relatedTasks[categoryTitle] = new List<RelatedTask>();
}
relatedTasks[categoryTitle].Add(new RelatedTask() { InstanceKey = oms.GetInstanceKey(ih), Label = oms.GetInstanceText(ih) });
}
}
} }