public bool Invoke(DataRow row, DataRowVersion version)
{
object[] parentValues = GetParentValues();
if (parentValues == null)
{
return false;
}
object[] childValues = row.GetKeyValues(_childKey, version);
bool allow = true;
if (childValues.Length != parentValues.Length)
{
allow = false;
}
else
{
for (int i = 0; i < childValues.Length; i++)
{
if (!childValues[i].Equals(parentValues[i]))
{
allow = false;
break;
}
}
}
IFilter baseFilter = base.GetFilter();
if (baseFilter != null)
{
allow &= baseFilter.Invoke(row, version);
}
return allow;
}