private void HandleSelectionChange(int[] scopeNodeIds, int[] resultNodeIds, IRequestStatus requestStatus)
{
this._selectedNodes.Clear();
foreach (ScopeNode node in base.ScopeNode.Children)
{
if (Array.IndexOf<int>(scopeNodeIds, node.Id) != -1)
{
this._selectedNodes.Add(node);
}
}
foreach (int num in resultNodeIds)
{
ResultNode item = this._resultNodes.GetNode(num);
if (item == null)
{
TraceSources.ExecutiveSource.TraceEvent(TraceEventType.Verbose, 12, "A selected ResultNode with id {0} in list view {1} appears to have been removed.", new object[] { num, base.ViewInstanceId });
}
else
{
this._selectedNodes.Add(item);
}
}
this._states |= ListViewStates.SnapInProcessingSelectionChange;
SyncStatus status = new SyncStatus(requestStatus);
this.OnSelectionChanged(status);
this._states &= ~ListViewStates.SnapInProcessingSelectionChange;
}