internal FeatureDataReader(IGeometryFactory factory, FeatureDataTable source, FeatureQueryExpression query, FeatureQueryExecutionOptions options) { if (source == null) { throw new ArgumentNullException("source"); } if (options != FeatureQueryExecutionOptions.FullFeature) { throw new ArgumentException("Only QueryExecutionOptions.All is supported.", "options"); } _factory = factory; _options = options; _query = query; _table = source.Clone(); foreach (FeatureDataRow row in source.Select(query.SpatialPredicate)) { _table.ImportRow(row); } }
public IFeatureDataReader ExecuteFeatureQuery(FeatureQueryExpression bounds, FeatureQueryExecutionOptions options) { FeatureDataReader reader = new FeatureDataReader(_geoFactory, _features, bounds, options); return(reader); }
public void IFeatureProviderMethodsPassThroughAdapter() { MockRepository mocks = new MockRepository(); IFeatureProvider adapted = mocks.CreateMock <IFeatureProvider>(); IGeometryFactory iGeometryFactoryStub = MockRepository.GenerateStub <IGeometryFactory>(); FeatureDataTable featureDataTableStub = MockRepository.GenerateStub <FeatureDataTable>(iGeometryFactoryStub); IFeatureDataReader iFeatureDataReaderStub = MockRepository.GenerateStub <IFeatureDataReader>(); IExtents iExtentsStub = MockRepository.GenerateStub <IExtents>(); FeatureQueryExpression featureQueryExpressionStub = MockRepository.GenerateStub <FeatureQueryExpression>(iExtentsStub, SpatialOperation.Intersects); FeatureQueryExecutionOptions featureQueryExecutionOptionsStub = new FeatureQueryExecutionOptions(); DataTable dataTableStub = MockRepository.GenerateStub <DataTable>(); CultureInfo cultureInfoStub = MockRepository.GenerateStub <CultureInfo>(1); using (mocks.Unordered()) { Expect.Call(adapted.CreateNewTable()) .Return(featureDataTableStub); Expect.Call(adapted.ExecuteFeatureQuery(featureQueryExpressionStub, featureQueryExecutionOptionsStub)) .Return(iFeatureDataReaderStub); Expect.Call(adapted.ExecuteFeatureQuery(featureQueryExpressionStub)) .Return(iFeatureDataReaderStub); adapted.GeometryFactory = iGeometryFactoryStub; Expect.Call(adapted.GeometryFactory) .Return(iGeometryFactoryStub); Expect.Call(adapted.GetFeatureCount()) .Return(3); Expect.Call(adapted.GetSchemaTable()) .Return(dataTableStub); Expect.Call(adapted.Locale) .Return(cultureInfoStub); adapted.SetTableSchema(featureDataTableStub); } mocks.ReplayAll(); AsyncFeatureProviderAdapter adapter = new AsyncFeatureProviderAdapter(adapted); Assert.Same(featureDataTableStub, adapter.CreateNewTable()); Assert.Same(iFeatureDataReaderStub, adapter.ExecuteFeatureQuery(featureQueryExpressionStub, featureQueryExecutionOptionsStub)); Assert.Same(iFeatureDataReaderStub, adapter.ExecuteFeatureQuery(featureQueryExpressionStub)); adapter.GeometryFactory = iGeometryFactoryStub; Assert.Same(iGeometryFactoryStub, adapter.GeometryFactory); Assert.Equal(3, adapter.GetFeatureCount()); Assert.Same(dataTableStub, adapter.GetSchemaTable()); Assert.Same(cultureInfoStub, adapter.Locale); adapter.SetTableSchema(featureDataTableStub); mocks.VerifyAll(); }
public IFeatureDataReader ExecuteFeatureQuery(FeatureQueryExpression query, FeatureQueryExecutionOptions options) { if (CoordinateTransformation != null && query.IsSpatialPredicateNonEmpty) { query = transformQuery(query); } return(InternalExecuteFeatureQuery(query, options)); }
public IFeatureDataReader ExecuteFeatureQuery(FeatureQueryExpression query, FeatureQueryExecutionOptions options) { if (CoordinateTransformation != null && query.IsSpatialPredicateNonEmpty) { query = transformQuery(query); } return InternalExecuteFeatureQuery(query, options); }
internal ShapeFileDataReader(ShapeFileProvider source, FeatureQueryExpression query, FeatureQueryExecutionOptions options) { if (options != FeatureQueryExecutionOptions.FullFeature) { throw new ArgumentException("Only QueryExecutionOptions.All is supported.", "options"); } _shapeFile = source; _options = options; _schemaTable = source.GetSchemaTable(); _fieldCount = _schemaTable.Rows.Count; // TODO: now that we are accessing the geometry each time, perhaps a feature // query here would save a disk access _objectEnumerator = source.ExecuteOidQuery(query.SpatialPredicate).GetEnumerator(); }
internal FeatureDataReader(IGeometryFactory factory, FeatureDataTable source, FeatureQueryExpression query, FeatureQueryExecutionOptions options) { if (source == null) throw new ArgumentNullException("source"); if (options != FeatureQueryExecutionOptions.FullFeature) { throw new ArgumentException("Only QueryExecutionOptions.All is supported.", "options"); } _factory = factory; _options = options; _query = query; _table = source.Clone(); foreach (FeatureDataRow row in source.Select(query.SpatialPredicate)) { _table.ImportRow(row); } }
protected override IFeatureDataReader InternalExecuteFeatureQuery(FeatureQueryExpression query, FeatureQueryExecutionOptions options) { return(ExecuteFeatureDataReader(PrepareSelectCommand(query))); }
public IFeatureDataReader ExecuteFeatureQuery(FeatureQueryExpression query, FeatureQueryExecutionOptions options) { return(new MonitoringFeatureDataReader(InnerProvider.ExecuteFeatureQuery(query, options), Monitor)); }
public IFeatureDataReader ExecuteFeatureQuery(FeatureQueryExpression query, FeatureQueryExecutionOptions options) { return(InnerFeatureProvider.ExecuteFeatureQuery(query, options)); }
public IFeatureDataReader ExecuteFeatureQuery(FeatureQueryExpression query, FeatureQueryExecutionOptions options) { return InnerFeatureProvider.ExecuteFeatureQuery(query, options); }
public void IFeatureProviderMethodsPassThroughAdapter() { MockRepository mocks = new MockRepository(); IFeatureProvider adapted = mocks.CreateMock<IFeatureProvider>(); IGeometryFactory iGeometryFactoryStub = MockRepository.GenerateStub<IGeometryFactory>(); FeatureDataTable featureDataTableStub = MockRepository.GenerateStub<FeatureDataTable>(iGeometryFactoryStub); IFeatureDataReader iFeatureDataReaderStub = MockRepository.GenerateStub<IFeatureDataReader>(); IExtents iExtentsStub = MockRepository.GenerateStub<IExtents>(); FeatureQueryExpression featureQueryExpressionStub = MockRepository.GenerateStub<FeatureQueryExpression>(iExtentsStub, SpatialOperation.Intersects); FeatureQueryExecutionOptions featureQueryExecutionOptionsStub = new FeatureQueryExecutionOptions(); DataTable dataTableStub = MockRepository.GenerateStub<DataTable>(); CultureInfo cultureInfoStub = MockRepository.GenerateStub<CultureInfo>(1); using (mocks.Unordered()) { Expect.Call(adapted.CreateNewTable()) .Return(featureDataTableStub); Expect.Call(adapted.ExecuteFeatureQuery(featureQueryExpressionStub, featureQueryExecutionOptionsStub)) .Return(iFeatureDataReaderStub); Expect.Call(adapted.ExecuteFeatureQuery(featureQueryExpressionStub)) .Return(iFeatureDataReaderStub); adapted.GeometryFactory = iGeometryFactoryStub; Expect.Call(adapted.GeometryFactory) .Return(iGeometryFactoryStub); Expect.Call(adapted.GetFeatureCount()) .Return(3); Expect.Call(adapted.GetSchemaTable()) .Return(dataTableStub); Expect.Call(adapted.Locale) .Return(cultureInfoStub); adapted.SetTableSchema(featureDataTableStub); } mocks.ReplayAll(); AsyncFeatureProviderAdapter adapter = new AsyncFeatureProviderAdapter(adapted); Assert.Same(featureDataTableStub, adapter.CreateNewTable()); Assert.Same(iFeatureDataReaderStub, adapter.ExecuteFeatureQuery(featureQueryExpressionStub, featureQueryExecutionOptionsStub)); Assert.Same(iFeatureDataReaderStub, adapter.ExecuteFeatureQuery(featureQueryExpressionStub)); adapter.GeometryFactory = iGeometryFactoryStub; Assert.Same(iGeometryFactoryStub, adapter.GeometryFactory); Assert.Equal(3, adapter.GetFeatureCount()); Assert.Same(dataTableStub, adapter.GetSchemaTable()); Assert.Same(cultureInfoStub, adapter.Locale); adapter.SetTableSchema(featureDataTableStub); mocks.VerifyAll(); }
protected abstract IFeatureDataReader InternalExecuteFeatureQuery(FeatureQueryExpression query, FeatureQueryExecutionOptions options);
/// <summary> /// jd:implementing because it is called via view presenters /// </summary> public IFeatureDataReader ExecuteFeatureQuery(FeatureQueryExpression query, FeatureQueryExecutionOptions options) { return(new GeometryDataReader(this, query.SpatialPredicate.SpatialExpression.Extents)); }