Exemplo n.º 1
0
        public SerializableReferenceLayer ConvertToSerializableReferenceLayer(ReferenceLayer referenceLayer)
        {
            if (referenceLayer.GetType() == typeof(RasterReferenceLayer))
            {
                var rasterReferenceLayer = referenceLayer as RasterReferenceLayer;
                var stringValues         = GetStringValues(rasterReferenceLayer);
                var enumeratedValues     = GetEnumeratedValues(rasterReferenceLayer);
                var numericValues        = GetNumericValues(rasterReferenceLayer);
                return(new SerializableReferenceLayer()
                {
                    RasterReferenceLayer = rasterReferenceLayer,
                    StringValues = stringValues,
                    EnumerationMemberValues = enumeratedValues,
                    NumericValueValues = numericValues
                });
            }

            if (referenceLayer.GetType() == typeof(ShapeReferenceLayer))
            {
                var shapeReferenceLayer = referenceLayer as ShapeReferenceLayer;

                if (shapeReferenceLayer != null && (shapeReferenceLayer.ShapeLookups == null || !shapeReferenceLayer.ShapeLookups.Any()))
                {
                    return new SerializableReferenceLayer {
                               ShapeReferenceLayer = shapeReferenceLayer
                    }
                }
                ;

                return(new SerializableReferenceLayer
                {
                    ShapeReferenceLayer = shapeReferenceLayer,
                    ShapeLookupValues = new List <SerializableShapeData> {
                        new SerializableShapeData {
                            shapeLookups = shapeReferenceLayer?.ShapeLookups
                        }
                    }
                });
            }

            return(null);
        }