Exemplo n.º 1
0
 private static async Task BuildSubThemesForGroupLayerAsync(TmNode node, IGisLayer layer)
 {
     foreach (var sublayer in layer.SubLayers)
     {
         //TODO: Build in parallel
         await BuildSubThemeForLayerAsync(node, sublayer);
     }
 }
Exemplo n.º 2
0
 private static void BuildThemeDataForLayer(ThemeData data, IGisLayer layer)
 {
     data.DataSource      = layer.DataSource;
     data.WorkspacePath   = layer.WorkspacePath;
     data.WorkspaceProgId = layer.WorkspaceProgId;
     data.WorkspaceType   = layer.WorkspaceType;
     data.Container       = layer.Container;
     data.ContainerType   = layer.ContainerType;
     data.DataSourceName  = layer.DataSourceName;
     data.DataSetName     = layer.DataSetName;
     data.DataSetType     = layer.DataSetType;
 }
Exemplo n.º 3
0
        static void Print(string layerPath, IGisLayer node)
        {
            var line = string.Join(",",
                                   Quote(layerPath), Quote(node.Container), node.ContainerType, Quote(node.DataSetName),
                                   node.DataSetType, Quote(node.DataSource), Quote(node.DataSourceName), Quote(node.DataType),
                                   node.IsGroup, node.SubLayers.Count(), Quote(node.Name), Quote(node.WorkspacePath),
                                   node.WorkspaceProgId, node.WorkspaceType);

            Console.WriteLine(line);
            foreach (var layer in node.SubLayers)
            {
                Print(layerPath, layer);
            }
        }
Exemplo n.º 4
0
        private static async Task BuildSubThemeForLayerAsync(TmNode node, IGisLayer subLayer)
        {
            ThemeData data = new ThemeData(null, subLayer.DataType);

            if (subLayer.IsGroup)
            {
                TmNode newNode = new TmNode(TmNodeType.Theme, subLayer.Name, node, data, null, null, null);
                node.Add(newNode);
                await BuildSubThemesForGroupLayerAsync(newNode, subLayer);
            }
            else
            {
                BuildThemeDataForLayer(data, subLayer);
                Metadata md = await Metadata.FromDataSourceAsync(data);

                TmNode newNode = new TmNode(TmNodeType.Theme, subLayer.Name, node, data, md, null, null);
                node.Add(newNode);
            }
        }