ESRI.ArcGIS.Client.Toolkit.DataSources.KmlLayer.IsContainerVisible C# (CSharp) Method

IsContainerVisible() private method

private IsContainerVisible ( string path, bool defaultVisibility ) : bool
path string
defaultVisibility bool
return bool
        private bool IsContainerVisible(string path, bool defaultVisibility)
        {
            // VisibleLayers not set --> use the default visibility defined in the KML document
            if (VisibleLayers == null || !VisibleLayers.Any())
                return defaultVisibility;

            // Check whether VisibleLayers contains the full path
            if (path == null || VisibleLayers.Contains(path))
                return true;

            // Global wildcard to set all layers as visible
            if (VisibleLayers.Contains("*"))
                return true;

            // look for a wildcard defined at a sublevel  (e.g. VisibleLayers="myFolder/*" makes visible all paths beginning by myFolder/)
            IEnumerable<string> subpaths = path.Select((c, ind) => c == '/' ? path.Substring(0, ind) : null).Where(subpath => subpath != null);
            return subpaths.Any(subpath => VisibleLayers.Contains(subpath + "/*"));
        }