Esempio n. 1
0
        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));
                }
            }
        }
Esempio n. 2
0
        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));
        }