private async void OnVectorLayerPropertyChanged(object sender, PropertyChangedEventArgs args)
        {
            if (GlobeSpotterConfiguration.AddLayerWfs)
            {
                VectorLayer vectorLayer = sender as VectorLayer;

                if (vectorLayer?.IsVisibleInGlobespotter ?? false)
                {
                    switch (args.PropertyName)
                    {
                    case "IsVisibleInGlobespotter":
                        await vectorLayer.GenerateGmlAsync();

                        break;

                    case "Gml":
                        if (vectorLayer.LayerId == null || vectorLayer.GmlChanged)
                        {
                            RemoveVectorLayer(vectorLayer);
                            AddVectorLayer(vectorLayer);
                        }

                        break;
                    }
                }
                else
                {
                    RemoveVectorLayer(vectorLayer);
                }
            }
        }
 private async Task UpdateVectorLayerAsync(VectorLayer vectorLayer)
 {
     if (vectorLayer.IsVisibleInGlobespotter)
     {
         await vectorLayer.GenerateGmlAsync();
     }
     else
     {
         RemoveVectorLayer(vectorLayer);
     }
 }
        public async void Dispose()
        {
            foreach (var element in this)
            {
                MeasurementPoint measurementPoint = element.Value;
                measurementPoint.Dispose();
            }

            _measurementList.Open   = IsOpen ? null : _measurementList.Open;
            _measurementList.Sketch = IsSketch ? null : _measurementList.Sketch;

            if (_measurementList.ContainsKey(EntityId))
            {
                _measurementList.Remove(EntityId);
            }

            if (VectorLayer != null)
            {
                await VectorLayer.GenerateGmlAsync();
            }
        }