async public Task <bool> LoadAsync(IPersistStream stream) { await this.SetConnectionString((string)stream.Load("ConnectionString", "")); _class = new GeoServicesClass(this); return(await Open()); }
public object Clone() { GeoServicesClass clone = new GeoServicesClass(_dataset); clone._clonedThemes = new List <IWebServiceTheme>(); var themes = (_clonedThemes != null) ? _clonedThemes : (_dataset?._themes ?? new List <IWebServiceTheme>()); foreach (IWebServiceTheme theme in themes) { if (theme == null || theme.Class == null) { continue; } clone._clonedThemes.Add(LayerFactory.Create( theme.Class, theme as ILayer, clone) as IWebServiceTheme); } clone.BeforeMapRequest = BeforeMapRequest; clone.AfterMapRequest = AfterMapRequest; clone.ModifyResponseOuput = ModifyResponseOuput; return(clone); }
public GeoServicesDataset(string connection, string name) : this() { _connection = connection; _name = name; _class = new GeoServicesClass(this); }
async public Task <object> GetInstanceAsync() { if (_class == null) { GeoServicesDataset dataset = new GeoServicesDataset( _connectionString, (String.IsNullOrWhiteSpace(_folder) ? "" : $"{_folder}/") + _name); await dataset.Open(); var elements = await dataset.Elements(); if (elements.Count == 0) { dataset.Dispose(); return(null); } _class = elements[0].Class as GeoServicesClass; } return(_class); }
async public Task <bool> Open(IServiceRequestContext context) { if (_class == null) { _class = new GeoServicesClass(this); } _class.Themes.Clear(); _themes = new List <IWebServiceTheme>(); string serviceUrl = ServiceUrl(); string user = ConfigTextStream.ExtractValue(ConnectionString, "user"); string pwd = ConfigTextStream.ExtractValue(ConnectionString, "pwd"); var jsonMapService = await TryPostAsync <JsonMapService>($"{serviceUrl}?f=json"); var jsonLayers = await TryPostAsync <JsonLayers>($"{serviceUrl}/layers?f=json"); if (jsonMapService != null) { _class.Name = jsonMapService.MapName; if (jsonMapService.FullExtent != null) { _class.Envelope = new Envelope( jsonMapService.FullExtent.XMin, jsonMapService.FullExtent.YMin, jsonMapService.FullExtent.XMax, jsonMapService.FullExtent.YMax); } if (jsonMapService.SpatialReferenceInstance != null && jsonMapService.SpatialReferenceInstance.Wkid > 0) { var sRef = gView.Framework.Geometry.SpatialReference.FromID("epsg:" + jsonMapService.SpatialReferenceInstance.Wkid); this.SetSpatialReference(sRef); _class.SpatialReference = sRef; } if (jsonLayers?.Layers != null) { foreach (var jsonLayer in jsonLayers.Layers) { IClass themeClass = null; IWebServiceTheme theme = null; if (jsonLayer.Type.ToLower() == "feature layer") { themeClass = await GeoServicesFeatureClass.CreateAsync(this, jsonLayer); theme = LayerFactory.Create(themeClass, _class as IWebServiceClass) as IWebServiceTheme; if (theme == null) { continue; } } // ToDo Raster classes if (themeClass == null) { continue; } theme.Visible = true; //false; _class.Themes.Add(theme); } } } return(true); }