private IEnumerable <NamedLayer> GetAllSelectedFeatureLayers(ISet iSet)
        {
            var layers = new List <NamedLayer>();

            iSet.Reset();
            object obj;

            while ((obj = iSet.Next()) != null)
            {
                if (!(obj is IGeoFeatureLayer))
                {
                    continue;
                }
                var layer = obj as ILayer;
                layers.Add(
                    new NamedLayer
                {
                    Name  = LayerUtils.GetFullName(MxDocument.FocusMap, layer),
                    Index = LayerUtils.GetIndexString(MxDocument.FocusMap, layer),
                    Layer = layer
                }
                    );
            }
            return(layers);
        }
        private IEnumerable <NamedLayer> GetSelectedFeatureLayers()
        {
            if (MxDocument.SelectedLayer is IGeoFeatureLayer)
            {
                var layer = MxDocument.SelectedLayer;
                return(new List <NamedLayer>
                {
                    new NamedLayer
                    {
                        Name = LayerUtils.GetFullName(MxDocument.FocusMap, layer),
                        Index = LayerUtils.GetIndexString(MxDocument.FocusMap, layer),
                        Layer = layer
                    }
                });
            }
            if (MxDocument.SelectedLayer is IGroupLayer)
            {
                var layer  = MxDocument.SelectedLayer;
                var layers = new List <NamedLayer>();
                LayerUtils.SearchLayer(layer as ICompositeLayer, typeof(IGeoFeatureLayer), layers,
                                       LayerUtils.GetIndexString(MxDocument.FocusMap, layer) + "-",
                                       LayerUtils.GetFullName(MxDocument.FocusMap, layer) + "/");
                return(layers.Count > 0 ? layers : InternalGetAllFeatureLayers());
            }
            IContentsViewSelection selection = GetSelection();

            if (selection != null && selection.SelectedItems.Count > 1)
            {
                var layers = GetAllSelectedFeatureLayers(selection.SelectedItems);
                return(layers.Any() ? layers : InternalGetAllFeatureLayers());
            }
            return(InternalGetAllFeatureLayers());
        }
 private IEnumerable <NamedLayer> GetLayersFromFocusMap(string type)
 {
     return(from layer in LayerUtils.GetAllLayers(MxDocument.FocusMap, type)
            let name = LayerUtils.GetFullName(MxDocument.FocusMap, layer)
                       let index = LayerUtils.GetIndexString(MxDocument.FocusMap, layer)
                                   select new NamedLayer
     {
         Name = name,
         Index = index,
         Layer = layer
     });
 }