public void Destroy() { _layersBuilder = null; _currentHeight = 0; _currentWidth = 0; foreach (var kvp in _cells) { kvp.Value.Free(); } _cells.Clear(); }
public void GeoserverServiceLayerTest() { ModulesFactory modulesFactory = new ModulesFactory(); LayersBuilder builder = new LayersBuilder(); builder.LayerName = "constanta:coasta_constanta_labeled"; builder.SingleLayer = true; GeoserverClient geoserverClient = new GeoserverClient("http://localhost:8080", "admin", "geoserver"); var result = geoserverClient.Get <Layer>(modulesFactory.CreateLayerModule(builder)); }
public void LayersBuilderTest() { LayersBuilder layersBuilder = new LayersBuilder(); layersBuilder.LayerName = "constanta_labeled"; layersBuilder.Workspace = "constanta"; layersBuilder.Styles = new List <string>() { "population" }; string value = layersBuilder.ToXml(); Assert.IsNotNull(value); }
/// <summary> /// Create an empty dataset in the database. Created dataset will wave status Pending /// </summary> /// <param name="datasetName">Name of the dataset</param> /// <param name="username">The username of the user which create the dataset</param> /// <returns>A boolean which indicates if the insert was succesufully and a return message</returns> public CreateDatasetResultCode CreateDataSet(string datasetName, string username, PointsSource pointsSource, string serviceUrl = null, string colorPaletteUser = null, string colorPaletteName = null) { int datasetId = this.userRepository.CreateUserPointsDataset(username, datasetName, pointsSource); if (pointsSource == PointsSource.Geoserver) { LayersBuilder builder = new LayersBuilder { LayerName = datasetName, SingleLayer = true }; string serverUrl = Helper.GetSourceFromUrl(serviceUrl); GeoserverClient client = geoserverClient(serverUrl, null, null); if (client.Get <Layer>(new ModulesFactory().CreateLayerModule(builder)) == null) { CoreContainers.LogsRepository.LogWarning($"Failed to get {datasetName} from Geoserver: {Helper.GetSourceFromUrl(serverUrl)}."); return(CreateDatasetResultCode.GeoserverError); } //if dataset already exists in database if (datasetId == -1) { datasetId = this.userRepository.GetDatasetID(username, datasetName); } int defaultColorPaletteId = this.userRepository.GetColorMapID(colorPaletteUser, colorPaletteName); if (defaultColorPaletteId == -1) { return(CreateDatasetResultCode.BadPaletteError); } datasetId = this.userRepository.RaiseToGeoserverDataset(datasetId, defaultColorPaletteId, serviceUrl); } return(datasetId != -1 ? CreateDatasetResultCode.Ok : CreateDatasetResultCode.DatasetError); }
public void ResizeField(int width, int height, LayersBuilder layersBuilder) { _cellsPool.Initialize(); _layersBuilder = layersBuilder; if (_currentWidth == 0) { CreateCell(0, 0); _currentWidth = 1; _currentHeight = 1; } ChangeSize(_currentWidth, _currentHeight, width - _currentWidth, true); ChangeSize(_currentHeight, width, height - _currentHeight, false); _fieldScaler.Scale(width, height); _currentHeight = height; _currentWidth = width; }
public LayersModule(LayersBuilder layersBuilder) { this.layersBuilder = layersBuilder; }
/// <summary> /// Use this method to associate a style with a layer in geoserver or to validate a layer /// </summary> /// <param name="datasetId"></param> /// <param name="paletteName"></param> /// <param name="paletteUsername"></param> /// <returns></returns> public bool ValidateGeoserverLayer(string datasetName, string datasetUsername, string paletteName, string paletteUsername) { /** * Steps: 1. check if palette is already asociated. If yes, return true * 2. if the palette is not associated, retrieve it from db and associate it with layer. * 3. if insert succeed, count the palette in the database and return true * 4. if insert fail, return false */ try { if (string.IsNullOrEmpty(paletteName) || string.IsNullOrEmpty(paletteUsername)) { return(false); } int datasetId = userRepository.GetDatasetID(datasetUsername, datasetName); int geoserverId = userRepository.GetGeoserverDatasetID(datasetId); if (geoserverId == -1) { return(false); } var datasetHeader = userRepository.GetDatasetHeader(datasetId); var geoserverPalettes = userRepository.GetGeoserverColorMaps(geoserverId); var selectedPalette = geoserverPalettes.Where(p => p.Item1 == paletteUsername && p.Item2.Name == paletteName).FirstOrDefault(); if (selectedPalette != null) { return(true); } selectedPalette = getUserColorMap(paletteUsername, paletteName); string serverUrl = Helper.GetSourceFromUrl((datasetHeader.OptionalData as GeoserverOptionalData).ServerUrl); GeoserverClient client = geoserverClient( serverUrl, null, null); if (!insertGeoserverStyle(client, selectedPalette.Item1, selectedPalette.Item2)) { CoreContainers.LogsRepository.LogWarning($"Failed to associate palette {selectedPalette.Item2.Name} with the dataset found at {serverUrl}"); } ModulesFactory modulesFactory = new ModulesFactory(); LayersBuilder builder = new LayersBuilder(); builder.LayerName = userRepository.GetDatasetHeader(datasetId).Name; builder.SingleLayer = true; builder.Styles = geoserverPalettes.Select(p => p.Item1 + '_' + p.Item2.Name).ToList(); builder.Styles.Add(paletteUsername + '_' + paletteName); return(client.Put(modulesFactory.CreateLayerModule(builder)) ? userRepository.InsertGeoserverColorMap( geoserverId, paletteName, paletteUsername ) != -1 : false); } catch (Exception exception) { return(false); } }
public IGeoserverModule CreateLayerModule(LayersBuilder layersBuilder) { return(new LayersModule(layersBuilder)); }