public virtual void AddReferences(IDictionary<NodeId, IList<IReference>> references)
{
lock (Lock)
{
foreach (KeyValuePair<NodeId, IList<IReference>> current in references)
{
// get the handle.
NodeHandle source = GetManagerHandle(m_systemContext, current.Key, null);
// only support external references to nodes that are stored in memory.
if (source == null || !source.Validated || source.Node == null)
{
return;
}
// add reference to external target.
foreach (IReference reference in current.Value)
{
if (!source.Node.ReferenceExists(reference.ReferenceTypeId, reference.IsInverse, reference.TargetId))
{
source.Node.AddReference(reference.ReferenceTypeId, reference.IsInverse, reference.TargetId);
}
}
}
}
}