예제 #1
0
 /// <summary>
 /// Remove WMS-layer
 /// </summary>
 /// <param name="id"></param>
 /// <param name="groups"></param>
 private void removeLayer(string id, List <LayerGroup> groups)
 {
     groups.ForEach(group => {
         MapWMSLayerInfo layer = group.layers.FirstOrDefault(l => l.id == id);
         if (layer != null)
         {
             group.layers.Remove(layer);
         }
         else
         {
             if (group.groups != null)
             {
                 this.removeLayer(id, group.groups);
             }
         }
     });
 }
예제 #2
0
        /// <summary>
        /// Find and update layer in group.
        /// </summary>
        /// <param name="groups"></param>
        /// <param name="oldLayerId"></param>
        /// <param name="newLayerId"></param>
        internal void FindAndUpdateLayerInGroup(List <LayerGroup> groups, string oldLayerId, string newLayerId)
        {
            bool found = false;

            groups.ForEach(group =>
            {
                MapWMSLayerInfo layer = group.layers.Find(l => l.id == oldLayerId);
                if (layer != null)
                {
                    layer.id = newLayerId;
                    found    = true;
                }
                if (group.groups == null)
                {
                    group.groups = new List <LayerGroup>();
                }
                if (!found && group.groups.Count > 0)
                {
                    this.FindAndUpdateLayerInGroup(group.groups, oldLayerId, newLayerId);
                }
            });
        }