Пример #1
0
        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);
            }
        }
Пример #2
0
        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();
        }
Пример #4
0
        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);
        }
Пример #6
0
        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();
        }
Пример #7
0
        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);
            }
        }
Пример #8
0
 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();
        }
Пример #13
0
 protected abstract IFeatureDataReader InternalExecuteFeatureQuery(FeatureQueryExpression query,
                                                                   FeatureQueryExecutionOptions options);
Пример #14
0
 /// <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));
 }
 protected abstract IFeatureDataReader InternalExecuteFeatureQuery(FeatureQueryExpression query,
                                                                   FeatureQueryExecutionOptions options);