internal int[] RemoveRecordFromIndexes(DataRow row, DataRowVersion version)
{
int indexCount = LiveIndexes.Count;
int[] positionIndexes = new int[indexCount];
int recordNo = row.GetRecordFromVersion(version);
DataViewRowState states = row.GetRecordState(recordNo);
while (--indexCount >= 0)
{
if (row.HasVersion(version) && ((states & _indexes[indexCount].RecordStates) != DataViewRowState.None))
{
int index = _indexes[indexCount].GetIndex(recordNo);
if (index > -1)
{
positionIndexes[indexCount] = index;
_indexes[indexCount].DeleteRecordFromIndex(index); // this will delete the record from index and MUSt not fire event
}
else
{
positionIndexes[indexCount] = -1; // this means record was not in index
}
}
else
{
positionIndexes[indexCount] = -1; // this means record was not in index
}
}
return positionIndexes;
}