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()); }
[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)); }
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); }