private IEnumerable <TableIndexRow> EnumerateRows([CanBeNull] IGeometry geometry) { const bool recycle = true; for (var tableIndex = 0; tableIndex < _tables.Count; tableIndex++) { ITable table = _tables[tableIndex]; IGeometry filterGeometry = geometry; if (!(table is IFeatureClass)) { filterGeometry = null; } IQueryFilter queryFilterFullScan = CreateQueryFilter(filterGeometry, tableIndex); var rowsToTest = new EnumCursor(table, queryFilterFullScan, recycle); foreach (IRow row in rowsToTest) { yield return(new TableIndexRow(tableIndex, row)); } } }
private int ExecuteGeometry([CanBeNull] IGeometry geometry) { if (!(_referencedTable is IFeatureClass)) { geometry = null; } //TODO use TableJoinUtils where appropriate IQueryFilter filter = TestUtils.CreateFilter(geometry, AreaOfInterest, GetConstraint(0), _referencedTable, null); GdbQueryUtils.SetSubFields(filter, _referencedTable.OIDFieldName, _referencedTableKey); const bool recycle = true; var enumCursor = new EnumCursor(_referencedTable, filter, recycle); return(VerifyRows(enumCursor)); }