private List <ISpatialElement> GetElementViewSpatialElements(MapElementView mapView)
        {
            MapBindingFieldPairCollection mapBindingFieldPairs = mapView.MapBindingFieldPairs;

            if (mapBindingFieldPairs == null)
            {
                return(null);
            }
            SpatialElementKey      obj  = CreateDataRegionSpatialElementKey(mapBindingFieldPairs);
            List <ISpatialElement> list = null;

            foreach (KeyValuePair <SpatialElementKey, SpatialElementInfoGroup> item in m_spatialElementsDictionary)
            {
                foreach (SpatialElementInfo element in item.Value.Elements)
                {
                    if (SpatialDataMapper.CreateCoreSpatialElementKey(element.CoreSpatialElement, mapView.MapBindingFieldPairs, m_mapVectorLayer.MapDef.Name, m_mapVectorLayer.Name).Equals(obj))
                    {
                        if (list == null)
                        {
                            list = new List <ISpatialElement>();
                        }
                        list.Add(element.CoreSpatialElement);
                    }
                }
            }
            return(list);
        }
        internal void ValidateKey(SpatialElementKey spatialElementKey, MapBindingFieldPairCollection mapBindingFieldPairs)
        {
            if (m_spatialDataMapper.KeyTypes == null)
            {
                return;
            }
            int num = 0;

            while (true)
            {
                if (num >= spatialElementKey.KeyValues.Count)
                {
                    return;
                }
                object obj = spatialElementKey.KeyValues[num];
                if (obj != null)
                {
                    Type type  = obj.GetType();
                    Type type2 = m_spatialDataMapper.KeyTypes[num];
                    if (!(type2 == null) && type != type2)
                    {
                        object obj2 = Convert(obj, type, type2);
                        if (obj2 == null)
                        {
                            break;
                        }
                        spatialElementKey.KeyValues[num] = obj2;
                    }
                }
                num++;
            }
            throw new RenderingObjectModelException(RPRes.rsMapFieldBindingExpressionTypeMismatch(RPRes.rsObjectTypeMap, m_mapVectorLayer.MapDef.Name, m_mapVectorLayer.Name, SpatialDataMapper.GetBindingFieldName(mapBindingFieldPairs[num])));
        }
        internal static SpatialElementKey CreateDataRegionSpatialElementKey(MapBindingFieldPairCollection mapBindingFieldPairs)
        {
            List <object> list = new List <object>();

            for (int i = 0; i < mapBindingFieldPairs.Count; i++)
            {
                list.Add(EvaluateBindingExpression(mapBindingFieldPairs[i]));
            }
            return(new SpatialElementKey(list));
        }
        private SpatialElementInfoGroup GetSpatialElementsFromDataRegionKey()
        {
            MapBindingFieldPairCollection mapBindingFieldPairs = m_mapVectorLayer.MapBindingFieldPairs;

            if (mapBindingFieldPairs != null)
            {
                SpatialElementKey spatialElementKey = CreateDataRegionSpatialElementKey(mapBindingFieldPairs);
                ValidateKey(spatialElementKey, mapBindingFieldPairs);
                if (m_spatialElementsDictionary.TryGetValue(spatialElementKey, out SpatialElementInfoGroup value))
                {
                    return(value);
                }
            }
            return(null);
        }
        internal static SpatialElementKey CreateCoreSpatialElementKey(ISpatialElement coreSpatialElement, MapBindingFieldPairCollection mapBindingFieldPairs, string mapName, string layerName)
        {
            if (mapBindingFieldPairs == null)
            {
                return(new SpatialElementKey(null));
            }
            List <object> list = new List <object>();

            for (int i = 0; i < mapBindingFieldPairs.Count; i++)
            {
                list.Add(GetBindingFieldValue(coreSpatialElement, mapBindingFieldPairs[i], mapName, layerName));
            }
            return(new SpatialElementKey(list));
        }