private bool VerifyReferences(
Node node,
BrowseDescription description,
ReferenceDescriptionCollection references)
{
bool success = true;
for (int ii = 0; ii < references.Count; ii++)
{
ReferenceDescription reference = references[ii];
if (reference == null)
{
Log("Returned null ReferenceDescription when Browsing Node '{0}'. NodeId = {1}", node, node.NodeId);
success = false;
continue;
}
if (!VerifyTargetId(node, description, reference))
{
success = false;
continue;
}
if (!VerifyReferenceTypeId(node, description, reference))
{
success = false;
continue;
}
if (!VerifyIsForward(node, description, reference))
{
success = false;
continue;
}
}
// read the attributes to verify the reference is correct.
try
{
if (!VerifyTargetAttributes(node, description, references))
{
return false;
}
}
catch (Exception e)
{
Log(e, "Could not verify target attributes when Browsing Node '{0}'. NodeId = {1}", node, node.NodeId);
return false;
}
// verify type definitions.
try
{
if (!VerifyTypeDefinitions(node, description, references))
{
return false;
}
}
catch (Exception e)
{
Log(e, "Could not verify type definitions when Browsing Node '{0}'. NodeId = {1}", node, node.NodeId);
return false;
}
return success;
}