private void CompleteRelationshipLinks(List<INodeProxy> nodes)
{
IDictionary<Guid, INodeProxy> nodeDict = new Dictionary<Guid, INodeProxy>();
foreach (INodeProxy nodeProxy in nodes)
{
nodeDict.Add(nodeProxy.Id, nodeProxy);
}
foreach (INodeProxy nodeProxy in nodes)
{
foreach (IDescriptorProxy descriptor in nodeProxy.Descriptors)
{
foreach (IDescriptorProxy altDescriptor in descriptor.Relationship.Descriptors)
{
if (altDescriptor.Node == null && altDescriptor.NodeId != Guid.Empty
&& nodeDict.ContainsKey(altDescriptor.NodeId))
{
altDescriptor.Node = nodeDict[altDescriptor.NodeId];
}
else if ((altDescriptor.Node == null && altDescriptor.NodeId != Guid.Empty
&& FocalNode != null && FocalNode.Id == altDescriptor.NodeId))
{
altDescriptor.Node = FocalNode;
}
}
}
}
}