private static void DeserializeLayer(dynamic layer, IMap map, Layer featureLayer) { LegacyLayerType typeOfLayer = (LegacyLayerType)Enum.ToObject(typeof(LegacyLayerType), Convert.ToInt32(layer["Type"])); switch (typeOfLayer) { case LegacyLayerType.Grid: break; case LegacyLayerType.Image: break; case LegacyLayerType.Invalid: throw new ArgumentException("The LayerType is an invalid layer type and cannot be loaded."); case LegacyLayerType.LineShapefile: LegacyDeserializer.DeserializeLayer(layer, featureLayer as MapLineLayer); break; case LegacyLayerType.PointShapefile: LegacyDeserializer.DeserializeLayer(layer, featureLayer as MapPointLayer); break; case LegacyLayerType.PolygonShapefile: LegacyDeserializer.DeserializeLayer(layer, featureLayer as MapPolygonLayer); break; default: throw new NotImplementedException("That LayerType is not supported."); } LegacyDeserializer.DeserializeLayerProperties(layer, featureLayer); }
private static void DeserializeLayers(MapGroup g, dynamic layers) { foreach (var layer in layers) { try { LegacyLayerType typeOfLayer = (LegacyLayerType)Enum.ToObject(typeof(LegacyLayerType), Convert.ToInt32(layer["Type"])); Layer mapLayer; switch (typeOfLayer) { case LegacyLayerType.Grid: mapLayer = GetGridLayer(layer); break; case LegacyLayerType.Image: mapLayer = GetImageLayer(layer); break; case LegacyLayerType.Invalid: throw new ArgumentException("The LayerType is an invalid layer type and cannot be loaded."); case LegacyLayerType.LineShapefile: mapLayer = GetLineLayer(layer); break; case LegacyLayerType.PointShapefile: mapLayer = GetPointLayer(layer); break; case LegacyLayerType.PolygonShapefile: mapLayer = GetPolygonLayer(layer); break; default: throw new NotImplementedException("That LayerType is not supported."); } if (mapLayer != null) { LegacyDeserializer.DeserializeLayerProperties(layer, mapLayer); g.Add(mapLayer); } } catch (Exception exOpen) { // TODO: provide a warning of some sort, possibly ask abort/retry/continue // HACK: we should be catching a more specific exception. Trace.WriteLine(exOpen.Message); } } }