public string buildSelectByAttributeCommand(SelectByAttributeOperationParam json, string scriptFolder, string scriptName, string inputLayerFile)
        {
            ICommandBuilder builder = createNewCommandBuilder();

            builder.AddProgramName(scriptFolder + @"\" + scriptName);
            builder.SignleParameter(inputLayerFile);
            builder.SignleParameter(json.Field);
            builder.SignleParameter(json.Operator.ToString());
            if (!String.IsNullOrEmpty(json.Value))
            {
                builder.SignleParameter(json.Value);
            }
            return(builder.GetResult());
        }
Exemple #2
0
        [Consumes("application/json")] // supports only json
        public IActionResult Post(SelectByAttributeOperationParam myJson)
        {
            var          pathToScriptFolder = Configuration["pathToAnalysisScriptFolder"];
            var          scriptName         = Configuration["AnalysisScriptNames:selectByAttribute"];
            var          qgisPython         = Configuration["ScriptRunners:qgisCmdPath"];
            ResultObject output;

            using (var tempFiles = new TempFileCollection())
            {
                string inputLayerFile = tempFiles.AddExtension("geojson");
                System.IO.File.WriteAllText(inputLayerFile, myJson.InputLayer.ToString());
                string args = _creator.buildSelectByAttributeCommand(myJson, pathToScriptFolder, scriptName, inputLayerFile);
                output = _python.RunCMD(args, qgisPython);
            }
            return(_outputHandler.HandleQgisOutput(output));
        }
Exemple #3
0
        public void Test_Validate_method(bool inputLayerValid, bool operatorValid, int expectedResultCount)
        {
            Random random = new Random();

            CheckPropertyValidation checkPropertyValidation = new CheckPropertyValidation();

            Mock <IValidationFunctions> mockValidationFunctions = new Mock <IValidationFunctions>();

            mockValidationFunctions.Setup(x => x.IsValidGeoJson(It.IsAny <string>())).Returns(inputLayerValid);
            mockValidationFunctions.Setup(x => x.isUsedOperatorValid(It.IsAny <int>())).Returns(operatorValid);

            SelectByAttributeOperationParam selectByAttributeOperationParam = new SelectByAttributeOperationParam()
            {
                InputLayer = "InputLayer" + random.Next(1000), Operator = random.Next(1000), Field = "field" + random.Next(1000)
            };

            IList <ValidationResult> result = checkPropertyValidation.myValidation(selectByAttributeOperationParam, mockValidationFunctions);

            Assert.AreEqual(expectedResultCount, result.Count);
        }