Example #1
0
        private void ServiceInfo_RetrieveFeatureInfoCompleted(object sender, RetrieveFeatureInfoEventArgs e)
        {
            if (--_servicesLeft <= 1)
            {
                ArcGisServiceInfo.ServiceInfo.RetrieveServiceInfoCompleted -= ServiceInfo_RetrieveServiceInfoCompleted;
                ArcGisServiceInfo.ServiceInfo.RetrieveFeatureInfoCompleted -= ServiceInfo_RetrieveFeatureInfoCompleted;
                IsDropDownOpen = true;
            }
            try
            {
                if (e.Error != null)
                {
                    ErrorHelper.OnError(MethodBase.GetCurrentMethod().DeclaringType.Name, "Error pulling arcgis service from server", e.Error);
                    return;
                }

                App.Current.Dispatcher.Invoke((Action) delegate
                {
                    Services.Add(e.FeatureData);
                    NotifyPropertyChanged("ServicesView");
                });
            }
            catch (Exception ex)
            {
                ErrorHelper.OnError(MethodBase.GetCurrentMethod().DeclaringType.Name, "Error pulling arcgis services from server", ex);
            }
        }
 private void RetrieveFeatureInfoCompleted(object sender, RetrieveFeatureInfoEventArgs e)
 {
     try
     {
         if (e.Error != null)
         {
             ErrorHelper.OnError(MethodBase.GetCurrentMethod().DeclaringType.Name, "Error pulling service info", e.Error);
             return;
         }
         Service             = e.FeatureData;
         IsLayerDropDownOpen = true;
     }
     catch (Exception ex)
     {
         ErrorHelper.OnError(MethodBase.GetCurrentMethod().DeclaringType.Name, "Error pulling service info", ex);
     }
 }
        private void ServiceInfo_RetrieveFeatureInfoCompleted(object sender, RetrieveFeatureInfoEventArgs e)
        {
            try
            {
                ArcGisServiceInfo.ServiceInfo.RetrieveFeatureInfoCompleted -= ServiceInfo_RetrieveFeatureInfoCompleted;
                if (e.Error != null)
                {
                    ErrorHelper.OnError(MethodBase.GetCurrentMethod().DeclaringType.Name, "Error pulling service info", e.Error);
                    return;
                }

                if (_pollObject is CacheSettings)
                {
                    var cache = _pollObject as CacheSettings;
                    var index = Configuration.MapServices.IndexOf(cache);
                    var name  = cache.Name;
                    Application.Current.Dispatcher.BeginInvoke((Action)(() =>
                    {
                        var dlgCache = new EditCacheDialog();
                        dlgCache.ViewModel.Configuration = cache;
                        dlgCache.ViewModel.MapService = e.FeatureData;
                        dlgCache.ShowDialog();

                        if (dlgCache.DialogResult == true)
                        {
                            Configuration.MapServices[index] = dlgCache.ViewModel.Configuration;
                            foreach (var gcdr in Configuration.Geocoders.Where(gcdr => gcdr.CacheName == name))
                            {
                                gcdr.CacheName = Configuration.MapServices[index].Name;
                            }
                            foreach (var stint in Configuration.StreetList.Where(stint => stint.CacheName == name))
                            {
                                stint.CacheName = Configuration.MapServices[index].Name;
                            }
                        }
                    }));
                }
                else if (_pollObject is GeocoderSettings)
                {
                    var geocoder = _pollObject as GeocoderSettings;
                    var index    = Configuration.Geocoders.IndexOf(geocoder);
                    var cache    = Configuration.MapServices.FirstOrDefault(cach => cach.Name == geocoder.CacheName);
                    var layer    = e.FeatureData.Layers.FirstOrDefault(lyr => lyr.Name == geocoder.LayerName);

                    Application.Current.Dispatcher.BeginInvoke((Action)(() =>
                    {
                        var dlgCache = new EditGeocoderDialog();
                        dlgCache.ViewModel.LayerInfo = layer;
                        dlgCache.ViewModel.Configuration = geocoder;
                        dlgCache.ShowDialog();

                        if (dlgCache.DialogResult == true)
                        {
                            Configuration.Geocoders[index] = dlgCache.ViewModel.Configuration;
                        }
                    }));
                }
                else
                {
                    ErrorHelper.OnMessage("Service polled for unknown object");
                }
            }
            catch (Exception ex)
            {
                ErrorHelper.OnError(MethodBase.GetCurrentMethod().DeclaringType.Name, "Error editing cache settings", ex);
            }
        }