Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        public void ColorMapStyle()
        {
            ColorMap colorMap = new ColorMap()
            {
                Name      = "checking",
                Intervals = new List <Interval>()
                {
                    new Interval()
                    {
                        Color = "#FF0000",
                        Left  = -100,
                        Right = 0
                    },
                    new Interval()
                    {
                        Color = "#00FF00",
                        Left  = 0,
                        Right = 100
                    }
                }
            };


            StylesBuilder builder = new StylesBuilder("colormap51", "colormap51");

            foreach (var rule in colorMap.GetRules())
            {
                builder.AddRule(rule);
            }

            ModulesFactory modulesFactory = new ModulesFactory();


            GeoserverClient geoserverClient = new GeoserverClient("http://localhost:8080", "admin", "geoserver");


            var result = geoserverClient.Post(modulesFactory.CreateStylesModule(builder));

            Assert.IsTrue(result);
        }
Exemplo n.º 3
0
        /// <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);
            }
        }
Exemplo n.º 4
0
        public void GeoserverServiceTest()
        {
            StylesBuilder builder = new StylesBuilder("teststyle22", "teststyle22");

            builder.AddRule(new Rule
            {
                Abstract            = "abstract",
                MaxScaleDenominator = 10,
                MinScaleDenominator = 10,
                Name   = "another",
                Title  = "another",
                Filter = new Filter
                {
                    FilterItems = new List <Filter.FilterItem>()
                    {
                        new Filter.FilterItem
                        {
                            PropertyName = "Height",
                            Type         = Filter.FilterItemType.PropertyIsGreaterThanOrEqualTo,
                            Literal      = "0"
                        }
                    }
                }
                ,
                PointSymbolizers = new List <PointSymbolizer>
                {
                    new PointSymbolizer
                    {
                        Graphic = new Graphic
                        {
                            MarkObject = new Graphic.Mark()
                            {
                                WellKnownNameProperty = Shape.Circle,
                                Fill = new Fill
                                {
                                    CssParameterArray = new List <CssParameter>()
                                    {
                                        new CssParameter
                                        {
                                            Name  = "fill",
                                            Value = "#FF0000"
                                        },
                                        new CssParameter
                                        {
                                            Name  = "fill-opacity",
                                            Value = "1"
                                        }
                                    },
                                }
                            }
                        }
                    }
                }
            });

            ModulesFactory modulesFactory = new ModulesFactory();

            GeoserverClient geoserverClient = new GeoserverClient("http://localhost:8080", "admin", "geoserver");

            var result = geoserverClient.PostAsync(modulesFactory.CreateStylesModule(builder)).Result;

            Assert.IsTrue(result);
        }
Exemplo n.º 5
0
 public ModulesManager(ModulesFactory modulesManager)
 {
     _modulesManager = modulesManager;
 }