public void SettingOidFilterAllowsOnlyFeaturesContainingFilteredOidsInView() { FeatureProvider data = DataSourceHelper.CreateFeatureDatasource(_factories.GeoFactory); FeatureDataTable <Guid> table = new FeatureDataTable <Guid>("Oid", _factories.GeoFactory); FeatureQueryExpression query = FeatureQueryExpression.Intersects(data.GetExtents()); IFeatureDataReader reader = data.ExecuteFeatureQuery(query); table.Load(reader, LoadOption.OverwriteChanges, null); Guid[] ids = new Guid[3]; ids[0] = (table.Rows[1] as FeatureDataRow <Guid>).Id; ids[1] = (table.Rows[4] as FeatureDataRow <Guid>).Id; ids[2] = (table.Rows[6] as FeatureDataRow <Guid>).Id; FeatureDataView view = new FeatureDataView(table); view.OidFilter = new OidCollectionExpression(ids); Assert.Equal(3, view.Count); Assert.True(view.Find(ids[0]) > -1); Assert.True(view.Find(ids[1]) > -1); Assert.True(view.Find(ids[2]) > -1); Assert.Equal(-1, view.Find((table.Rows[0] as FeatureDataRow <Guid>).Id)); Assert.Equal(-1, view.Find((table.Rows[2] as FeatureDataRow <Guid>).Id)); Assert.Equal(-1, view.Find((table.Rows[3] as FeatureDataRow <Guid>).Id)); Assert.Equal(-1, view.Find((table.Rows[5] as FeatureDataRow <Guid>).Id)); }
private static IEnumerable <Int32> getSelectedFeatureIndexesFromHighlighedFeatures( FeatureDataView selectedFeatures, FeatureDataView highlightedFeatures) { foreach (FeatureDataRow feature in highlightedFeatures) { yield return(selectedFeatures.Find(feature)); } }